I used NRT readers all the time. I create then with 'applyDeletes' set to
false for performance reasons and take the javadoc at its word that my code
has to be prepared to deal with deleted documents. I thought I understood
that and I wrote my code to be deleted-document-safe.

But I have recently revisited the issue and tried to understand what
happens using a little test program. I create a document and add it to the
index. I then create a new document that mirrors the first one but I change
the value of a field. Then I call IndexWriter.updateDocument() which is a
delete and an add.

I then get a NRT reader with applyDeletes set to false and do a
MatchAllDocsQuery search. I would expect to get 2 documents back: the
current one and the updated one. But I only get back the updated one.

But I know in real code with 1000's of documents flying into the index that
I have gotten deleted documents returned.

Can someone explain to me why my small test program doesn't get the deleted
documents back?

Stuart M Goldberg

Senior Vice President of Software Develpment
*FIX Flyer LLC*
http://www.FIXFlyer.com/ <http://www.fixflyer.com/>

NOTICE TO RECIPIENT: THIS E- MAIL IS MEANT ONLY FOR THE INTENDED
RECIPIENT(S) OF THE TRANSMISSION, AND CONTAINS CONFIDENTIAL INFORMATION
WHICH IS PROPRIETARY TO FIX FLYER LLC ANY UNAUTHORIZED USE, COPYING,
DISTRIBUTION, OR DISSEMINATION IS STRICTLY PROHIBITED. ALL RIGHTS TO THIS
INFORMATION IS RESERVED BY FIX FLYER LLC. IF YOU ARE NOT THE INTENDED
RECIPIENT, PLEASE CONTACT THE SENDER BY REPLY EMAIL AND PLEASE DELETE THIS
E-MAIL FROM YOUR SYSTEM AND DESTROY ANY COPIES.

-- 
*Notice to Recipient*: https://www.fixflyer.com/disclaimer 
<https://www.fixflyer.com/disclaimer>

Reply via email to