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

   Even though there is a single clause, it often needs to be intersected, 
either with live docs or with the collector's competitive iterator.
   
   This uses `DenseConjunctionBulkScorer` for:
    - `MatchAllDocsQuery`,
    - `TermQuery` when scores are not needed and `docFreq >= maxDoc / 32`,
    - some constant-score queries including `PointRangeQuery` when `cost >= 
maxDoc / 32`.
   
   In addition,
    - `DenseConjunctionBulkScorer` was improved to stop collecting hits when 
the min competitive score is greater than the configured constant score,
    - Added test coverage to sorting tests to make sure that their competitive 
iterators are happy with how `DenseConjunctionBulkScorer` reads ahead.
   
   The downside of this change is that it forces the impacted queries to score 
at least 4096 (the window size) docs at once. So queries that can start 
skipping very early (and which are thus very fast) may see a slowdown (e.g. 
`TermMonthSort`). On the other hand, when it takes time before dynamic pruning 
becomes effective, there could be a speedup thanks to the more efficient 
intersection logic (e.g.  `TermDTSort`).
   
   This change should also help in the presence of deleted docs, by taking 
advantage of the more efficient way how deleted docs are applied in this bulk 
scorer.
   
   Closes #14283


-- 
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