mirror of https://github.com/apache/lucene.git
Revert "Better handle dynamic pruning when the leading clause has a single impact block. (#13904)"
This reverts commit 5fd45254d3
.
This commit is contained in:
parent
789658819f
commit
1faf33a02a
|
@ -53,10 +53,6 @@ Optimizations
|
||||||
* GITHUB#13800: MaxScoreBulkScorer now recomputes scorer partitions when the
|
* GITHUB#13800: MaxScoreBulkScorer now recomputes scorer partitions when the
|
||||||
minimum competitive allows for a more favorable partitioning. (Adrien Grand)
|
minimum competitive allows for a more favorable partitioning. (Adrien Grand)
|
||||||
|
|
||||||
* GITHUB#13904: BlockMaxConjunctionBulkScorer can now early exit when the
|
|
||||||
leading clause has a single impact block (e.g. ConstantScoreQuery).
|
|
||||||
(Adrien Grand)
|
|
||||||
|
|
||||||
Bug Fixes
|
Bug Fixes
|
||||||
---------------------
|
---------------------
|
||||||
* GITHUB#13832: Fixed an issue where the DefaultPassageFormatter.format method did not format passages as intended
|
* GITHUB#13832: Fixed an issue where the DefaultPassageFormatter.format method did not format passages as intended
|
||||||
|
|
|
@ -85,20 +85,9 @@ final class BlockMaxConjunctionBulkScorer extends BulkScorer {
|
||||||
|
|
||||||
int windowMin = Math.max(lead1.docID(), min);
|
int windowMin = Math.max(lead1.docID(), min);
|
||||||
while (windowMin < max) {
|
while (windowMin < max) {
|
||||||
// Use impacts of the least costly scorer to compute windows to keep the per-block overhead
|
// Use impacts of the least costly scorer to compute windows
|
||||||
// under control.
|
// NOTE: windowMax is inclusive
|
||||||
// NOTE: windowMax is inclusive.
|
int windowMax = Math.min(scorers[0].advanceShallow(windowMin), max - 1);
|
||||||
int windowMax = scorer1.advanceShallow(windowMin);
|
|
||||||
if (windowMax == DocIdSetIterator.NO_MORE_DOCS) {
|
|
||||||
// If the query doesn't have impacts anymore, or has a single block for the whole doc ID
|
|
||||||
// space (e.g. ConstantScoreQuery), then we try to create a block that has ~128 docs of the
|
|
||||||
// leading clause. This gives us higher chances to exit early based on the maximum scores of
|
|
||||||
// other clauses.
|
|
||||||
long windowSize = 128L * maxDoc / Math.max(1, lead1.cost());
|
|
||||||
windowSize = Math.max(windowSize, 128L);
|
|
||||||
windowMax = (int) Math.min(Integer.MAX_VALUE, windowMin + windowSize);
|
|
||||||
}
|
|
||||||
windowMax = Math.min(windowMax, max - 1);
|
|
||||||
|
|
||||||
float maxWindowScore = Float.POSITIVE_INFINITY;
|
float maxWindowScore = Float.POSITIVE_INFINITY;
|
||||||
if (0 < scorable.minCompetitiveScore) {
|
if (0 < scorable.minCompetitiveScore) {
|
||||||
|
|
Loading…
Reference in New Issue