thanks for your quick reply. I'm trying to use your method, but running into a NullPointerException on the IndexWriteer.addIndexes().
code sample isearcher is IndexSearcher, newValues is IndexWriter with RAM Directory <snip> ParallelReader preader = new ParallelReader(); preader.add(isearcher.getIndexReader()); preader.add(new IndexSearcher(newValues.getDirectory()).getIndexReader()); int numdoc = preader.numDocs(); for (int i = 0; i< numdoc; i++){ Document d= preader.document(i); System.out.println( d.toString()); } writer.addIndexes(new IndexReader[]{preader}); <snip> this code works fine before the addIndexes line. it printed the merged index properly. but addIndexes throws NullPointerException. java.lang.NullPointerException at org.apache.lucene.index.ParallelReader$ParallelTermPositions.seek(ParallelReader.java:358) at org.apache.lucene.index.ParallelReader$ParallelTermDocs.seek(ParallelReader.java:320) at org.apache.lucene.index.SegmentMerger.appendPostings(SegmentMerger.java:327) at org.apache.lucene.index.SegmentMerger.mergeTermInfo(SegmentMerger.java:298) at org.apache.lucene.index.SegmentMerger.mergeTermInfos(SegmentMerger.java:272) at org.apache.lucene.index.SegmentMerger.mergeTerms(SegmentMerger.java:236) at org.apache.lucene.index.SegmentMerger.merge(SegmentMerger.java:89) at org.apache.lucene.index.IndexWriter.addIndexes(IndexWriter.java:605) I was using lucene 1.9.1, but there's a bug for this ,and i've updated to lucene 2.0.0, but still the same. thanks in advance, Philip Andrzej Bialecki wrote: > > philipc wrote: >> hi, >> >> I'm trying to add a new field to all the documents in a lucene index. >> After searching around, I found the only way to do an update >> is by retrieve the old documents, update it, delete it, then re-add >> to index. >> >> However, this worked for only preserving the stored fields. >> i've lost all the unstored fields from the documents. >> is there anyway to keep the unstored fields as well? >> >> Or any way to go around the problem, >> ie, anyway to export the entire index to a csv file >> and then update the cvs, and then import it back? > > Here's an idea: create an index consisting of documents with just this > field, adding documents in exactly the same order as they are in the > other index. Then use ParallelReader to access both indexes at the same > time - ParallelReader will present a merged view of both indexes. You > can also use IndexWriter.addIndexes() to create a merged index. > > > -- > Best regards, > Andrzej Bialecki <>< > ___. ___ ___ ___ _ _ __________________________________ > [__ || __|__/|__||\/| Information Retrieval, Semantic Web > ___|||__|| \| || | Embedded Unix, System Integration > http://www.sigram.com Contact: info at sigram dot com > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > -- View this message in context: http://www.nabble.com/Updating-Lucene-Index-with-Unstored-fields-tp15188818p15236124.html Sent from the Lucene - Java Developer mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]