lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler (JIRA)" <>
Subject [jira] [Commented] (LUCENE-4203) Add IndexWriter.tryDeleteDocument, to delete by document id when possible
Date Tue, 10 Jul 2012 17:08:35 GMT


Uwe Schindler commented on LUCENE-4203:

Hi Mike,

the user does not see any impl class (we should actually hide SegmentReader again), user only
sees AtomicReader. NRT should subclass (the internal) SegmentReader and after that the code
can simply check the incoming Reader if it is NRTReader. If not it say "I cannot delete documents
by id with non-NRT IndexWriter". Nothing more, plain simple. Please do not make anything of
these crazy internal classes public!

> Add IndexWriter.tryDeleteDocument, to delete by document id when possible
> -------------------------------------------------------------------------
>                 Key: LUCENE-4203
>                 URL:
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: core/index
>            Reporter: Michael McCandless
>         Attachments: LUCENE-4203.patch
> Spinoff from LUCENE-4069.
> In that use case, where the app needs to first lookup a document, then
> call updateDocument, it's wasteful today because the relatively costly
> lookup (by a primary key field, eg "id") is done twice.
> But, since you already resolved the PK to docID on the first lookup,
> it would be nice to then delete by that docID and then you can call
> addDocument instead.
> So I worked out a rough start at this, by adding
> IndexWriter.tryDeleteDocument.  It'd be a very expert API: it takes a
> SegmentInfo (referencing the segment that contains the docID), and as
> long as that segment hasn't yet been merged away, it will mark the
> document for deletion and return true (success).  If it has been
> merged away it returns false and the app must then delete-by-term.  It
> only works if the writer is in NRT mode (ie you've opened an NRT
> reader).
> In LUCENE-4069 using tryDeleteDocument gave a ~20% net speedup.
> I think tryDeleteDocument would also be useful when Solr "updates" a
> document by loading all stored fields, changing them, and calling
> updateDocument.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message