From c2aa72aa52bdc306f15fbc141956ffe8292d3b19 Mon Sep 17 00:00:00 2001 From: "gesong.samuel" Date: Tue, 29 Jul 2025 19:58:52 +0800 Subject: [PATCH 1/2] init --- .../lucene/search/BlockMaxConjunctionBulkScorer.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lucene/core/src/java/org/apache/lucene/search/BlockMaxConjunctionBulkScorer.java b/lucene/core/src/java/org/apache/lucene/search/BlockMaxConjunctionBulkScorer.java index d10c0bb41e7c..7df9d05f9595 100644 --- a/lucene/core/src/java/org/apache/lucene/search/BlockMaxConjunctionBulkScorer.java +++ b/lucene/core/src/java/org/apache/lucene/search/BlockMaxConjunctionBulkScorer.java @@ -56,8 +56,11 @@ final class BlockMaxConjunctionBulkScorer extends BulkScorer { this.scorables = Arrays.stream(this.scorers).map(ScorerUtil::likelyTermScorer).toArray(Scorable[]::new); this.iterators = - Arrays.stream(this.scorers).map(Scorer::iterator).toArray(DocIdSetIterator[]::new); - lead = ScorerUtil.likelyImpactsEnum(iterators[0]); + Arrays.stream(this.scorers) + .map(Scorer::iterator) + .map(ScorerUtil::likelyImpactsEnum) + .toArray(DocIdSetIterator[]::new); + lead = iterators[0]; this.sumOfOtherClauses = new double[this.scorers.length]; Arrays.fill(sumOfOtherClauses, Double.POSITIVE_INFINITY); this.maxDoc = maxDoc; From 4857f25ca4046b404ec9cee48ae073145e927fdc Mon Sep 17 00:00:00 2001 From: "gesong.samuel" Date: Tue, 29 Jul 2025 20:08:15 +0800 Subject: [PATCH 2/2] add changes --- lucene/CHANGES.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt index 06353da69ba3..ffc96cd63ee8 100644 --- a/lucene/CHANGES.txt +++ b/lucene/CHANGES.txt @@ -220,6 +220,8 @@ Optimizations * GITHUB#14991: Refactor for loop at PointRangeQuery hot path. (Ge Song) +* GITHUB#15004: Wraps all iterator with likelyImpactsEnum under BlockMaxConjunctionBulkScorer. (Ge Song) + Changes in Runtime Behavior --------------------- * GITHUB#14823: Decrease TieredMergePolicy's default number of segments per