kkewwei opened a new issue, #16668:
URL: https://github.com/apache/lucene/issues/16668

   ### Description
   
   `ReqExclBulkScorer` currently processes prohibited documents using a 
leapfrog loop. It scores required documents up to the next excluded document, 
advances the prohibited iterator, and repeats. This works well for sparse 
prohibited clauses. However, it becomes expensive when the prohibited side is 
dense, especially when it is a disjunction of multiple high-frequency terms.
   
   `docIDRunEnd()` only helps when the iterator can expose a consecutive run of 
matching document IDs. Dense disjunctions are often composed of interleaved 
postings rathe. In these cases, `docIDRunEnd()` frequently returns only 
`docID()` + 1.
   
   I'm planing to introduce a dense path that collects prohibited documents 
into 4096-document `bitset` windows, inverts the mask, applies `acceptDocs`, 
and scores the required clause once per window.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to