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