jpountz opened a new pull request, #13408:
URL: https://github.com/apache/lucene/pull/13408

   This relates to #13359: we want to take advantage of the 
`Weight#scorerSupplier` call to start scheduling some I/O in the background in 
parallel across clauses. For this to work properly with top-level disjunctions, 
we need to move `#bulkScorer()` from `Weight` to `ScorerSupplier` as well, so 
that the disjunctive `BooleanQuery` first performs a call on 
`Weight#scorerSupplier()` on all inner clauses, and then 
`ScorerSupplier#bulkScorer` on all inner clauses.
   
   `ScorerSupplier#get` and `ScorerSupplier#bulkScorer` only support being 
called once. This forced me to fix some inefficiencies in `bulkScorer()` 
implementations when we would pull scorers and then throw it away when 
realizing that the strategy we were planning on using was not optimal. This is 
why e.g. `ReqExclBulkScorer` now also supports prohibited clauses that produce 
a two-phase iterator.


-- 
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: issues-unsubscr...@lucene.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to