[
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: [email protected]
For additional commands, e-mail: [email protected]