[ https://issues.apache.org/jira/browse/LUCENE-1705?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12722649#action_12722649 ]
Tim Smith commented on LUCENE-1705: ----------------------------------- It seems like this method could be very simple (obviously i'm not an expert on IndexWriter code (yet)) seems like this is pretty close: {code} public synchronized void deleteAll() throws IOException { rollbackTransaction(); // might need to unroll this and not do everything here segmentInfos.clear(); checkpoint(); // should we do this here? or just let the inevitable commit do this? } {code} Alternatively, i suppose we could just copy rollbackTransaction to a deleteAll() method with the one change of not restoring the rollbackSegmentInfos (just leave it cleared) This may result in doing less work (and be more self contained > 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 > > 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