jpountz commented on code in PR #13066:
URL: https://github.com/apache/lucene/pull/13066#discussion_r1530752132


##########
lucene/core/src/java/org/apache/lucene/search/DisjunctionSumScorer.java:
##########
@@ -43,10 +47,23 @@ protected float score(DisiWrapper topList) throws 
IOException {
     return (float) score;
   }
 
+  @Override
+  public int advanceShallow(int target) throws IOException {
+    int min = DocIdSetIterator.NO_MORE_DOCS;
+    for (Scorer scorer : scorers) {
+      if (scorer.docID() <= target) {
+        min = Math.max(min, scorer.advanceShallow(target));
+      }
+    }
+    return min;
+  }
+
   @Override
   public float getMaxScore(int upTo) throws IOException {
-    // It's ok to return a bad upper bound here since we use WANDScorer when
-    // we actually care about block scores.
-    return Float.MAX_VALUE;
+    double maxScore = 0;
+    for (Scorer scorer : scorers) {
+      maxScore += scorer.getMaxScore(upTo);

Review Comment:
   We should not call `getMaxScore` on scorers whose doc ID is already beyond 
`upTo`. See `WANDScorer#getMaxScore`.



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