[ 
https://issues.apache.org/jira/browse/LUCENE-7344?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15413216#comment-15413216
 ] 

Shai Erera commented on LUCENE-7344:
------------------------------------

Hmm ... I had to refresh my memory of the DV updates code and I agree with 
[~mikemccand] that the fix is hairy (which goes hand-in-hand with the hairy 
{{BufferedUpdatesStream}}). The problem is that deleteByQuery uses the existing 
LeafReader, but the DV updates themselves were not yet applied so the reader is 
unaware of the change.

I changed the test to call {{updateDocument}} instead of updating the NDV and 
the test passes. This is expected because updating a document deletes the old 
one and adds a new document. So when DBQ is processed, a LeafReader is opened 
on the new segment (with the new document; it has to work that way cause the 
new document isn't yet flushed) and the new segment thus has the new document 
with the updated NDV.

I agree this is a bug *only* because updating a document followed by DBQ works 
as expected. The internals of how in-place updates are applied should not 
concern the user.

I wonder if we need to implement a complex merge-sorting approach as 
[~mikemccand] proposes, or if we applied the DV updates before processing and 
DBQ would be enough (ignoring the adversarial affects that Mike describes; 
they're true, but I ignore them for the moment). I want to try that.

If that works, then perhaps we can detect if a DBQ involves an NDV field (or 
BDV field for that matter) and refresh the reader only then, or refresh the 
reader whenever there are DBQ and any DV updates, even if they are unrelated. 
But first I want to try and make the test pass, before we decide on how to 
properly fix it.

> Deletion by query of uncommitted docs not working with DV updates
> -----------------------------------------------------------------
>
>                 Key: LUCENE-7344
>                 URL: https://issues.apache.org/jira/browse/LUCENE-7344
>             Project: Lucene - Core
>          Issue Type: Bug
>            Reporter: Ishan Chattopadhyaya
>         Attachments: LUCENE-7344.patch
>
>
> When DVs are updated, delete by query doesn't work with the updated DV value.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to