There is a bug in your test: you cannot use reader.maxDoc(). It's expected this would be 2 when (*) is commented out, because you have 2 docs, one of which is deleted.
Use numDocs instead? Mike McCandless http://blog.mikemccandless.com On Thu, Jun 19, 2014 at 12:54 PM, Clemens Wyss DEV <clemens...@mysign.ch> wrote: > directory = new SimpleFSDirectory( indexLocation ); > IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_47, new > WhitespaceAnalyzer( Version.LUCENE_47 )); > indexWriter = new IndexWriter( directory, config ); > Document doc = new Document(); > String value = "hello"; > String key = "test"; > doc.add( new StringField( key, value, Store.YES ) ); > indexWriter.updateDocument( new Term( key, value ), doc ); > // (*) indexWriter.commit(); > indexWriter.updateDocument( new Term( key, value ), doc ); > indexWriter.commit(); > indexWriter.close(); > reader = DirectoryReader.open( directory ); > Assert.assertEquals( 1, reader.maxDoc() );// fails unless (*) is uncommented > > -----Ursprüngliche Nachricht----- > Von: Michael McCandless [mailto:luc...@mikemccandless.com] > Gesendet: Mittwoch, 18. Juni 2014 16:20 > An: Lucene Users > Betreff: Re: IndexWriter#updateDocument(Term, Document) > > Your first case is supposed to work; if it doesn't it's a bad bug :) > > Can you reduce it to a small example? > > Mike McCandless > > http://blog.mikemccandless.com > > > On Wed, Jun 18, 2014 at 10:08 AM, Clemens Wyss DEV <clemens...@mysign.ch> > wrote: >> I would like to perform a batch update on an index. In order to omit >> duplicate entries I am making use of IndexWriter#updateDocument(Term, >> Document) >> >> open an IndexWriter; >> foreach( element in elementsToBeUpdatedWhichHaveDuplicates ) { doc = >> element.toDoc(); indexWriter.updateDocument( uniqueTermForElement, doc >> ); } >> >> Unfortunately this does not seem to work, whereas >> >> open an IndexWriter; >> foreach( element in elementsToBeUpdatedWhichHaveDuplicates ) { doc = >> element.toDoc(); indexWriter.updateDocument( uniqueTermForElement, doc >> ); indexWriter.commit(); // expensive? >> } >> >> does. How can I batchupdate without commiting? >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org >> For additional commands, e-mail: java-user-h...@lucene.apache.org >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org > For additional commands, e-mail: java-user-h...@lucene.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org For additional commands, e-mail: java-user-h...@lucene.apache.org