[ https://issues.apache.org/jira/browse/LUCENE-1705?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tim Smith reopened LUCENE-1705: ------------------------------- Looks like i found an issue with this The deleteAll() method isn't resetting the nextDocID on the DocumentsWriter (or some similar behaviour) so, the following state will result in an error: * deleteAll() * updateDocument("5", doc) * commit() this results in a delete for doc "5" getting buffered, but with a very high "maxDocId" at the same time, doc is added, however, the following will then occur on commit: * flush segments to disk * doc "5" is now in a segment on disk * run deletes * doc "5" is now blacklisted from segment Will work on fixing this and post a new patch (along with updated test case) (was worried i was missing an edge case) > Add deleteAllDocuments() method to IndexWriter > ---------------------------------------------- > > Key: LUCENE-1705 > URL: https://issues.apache.org/jira/browse/LUCENE-1705 > Project: Lucene - Java > Issue Type: Wish > Components: Index > Affects Versions: 2.4 > Reporter: Tim Smith > Assignee: Michael McCandless > Fix For: 2.9 > > Attachments: IndexWriterDeleteAll.patch, LUCENE-1705.patch > > > Ideally, there would be a deleteAllDocuments() or clear() method on the > IndexWriter > This method should have the same performance and characteristics as: > * currentWriter.close() > * currentWriter = new IndexWriter(..., create=true,...) > This would greatly optimize a delete all documents case. Using > deleteDocuments(new MatchAllDocsQuery()) could be expensive given a large > existing index. > IndexWriter.deleteAllDocuments() should have the same semantics as a > commit(), as far as index visibility goes (new IndexReader opening would get > the empty index) > I see this was previously asked for in LUCENE-932, however it would be nice > to finally see this added such that the IndexWriter would not need to be > closed to perform the "clear" as this seems to be the general recommendation > for working with an IndexWriter now > deleteAllDocuments() method should: > * abort any background merges (they are pointless once a deleteAll has been > received) > * write new segments file referencing no segments > This method would remove one of the final reasons i would ever need to close > an IndexWriter and reopen a new one -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org For additional commands, e-mail: java-dev-h...@lucene.apache.org