gf2121 commented on code in PR #14400:
URL: https://github.com/apache/lucene/pull/14400#discussion_r2012151639


##########
lucene/core/src/java/org/apache/lucene/search/DenseConjunctionBulkScorer.java:
##########
@@ -171,27 +171,30 @@ private int scoreWindow(
       }
     }
 
-    if (acceptDocs == null) {
-      int minDocIDRunEnd = max;
-      for (DisiWrapper w : iterators) {
-        if (w.docID() > min) {
-          minDocIDRunEnd = min;
-          break;
-        } else {
-          minDocIDRunEnd = Math.min(minDocIDRunEnd, w.docIDRunEnd());
+    int minDocIDRunEnd = max;
+    int bitsetWindowMax = (int) Math.min(max, (long) min + WINDOW_SIZE);
+    for (DisiWrapper w : iterators) {
+      if (w.docID() > min) {
+        minDocIDRunEnd = min;
+      } else {
+        int docIDRunEnd = w.docIDRunEnd();
+        minDocIDRunEnd = Math.min(minDocIDRunEnd, docIDRunEnd);
+        // If we can find one clause that matches over more than half the 
window then we truncate
+        // the window to the run end of this clause as the benefits of 
evaluating one less clause
+        // likely dominate the overhead of using a smaller window.
+        if (docIDRunEnd - min >= WINDOW_SIZE / 2) {
+          bitsetWindowMax = Math.min(bitsetWindowMax, docIDRunEnd);
         }
       }
-
-      if (minDocIDRunEnd - min >= WINDOW_SIZE / 2) {
-        // We have a large range of doc IDs that all match.
-        rangeDocIdStream.from = min;
-        rangeDocIdStream.to = minDocIDRunEnd;
-        collector.collect(rangeDocIdStream);
-        return minDocIDRunEnd;
-      }
     }
 
-    int bitsetWindowMax = (int) Math.min(max, (long) min + WINDOW_SIZE);
+    if (acceptDocs == null && minDocIDRunEnd >= bitsetWindowMax) {

Review Comment:
   Could `minDocIDRunEnd` ever be bigger than `bitsetWindowMax` ?



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