jpountz commented on a change in pull request #81: URL: https://github.com/apache/lucene/pull/81#discussion_r612186123
########## File path: lucene/core/src/java/org/apache/lucene/search/DisjunctionSumScorer.java ########## @@ -45,8 +47,18 @@ protected float score(DisiWrapper topList) throws IOException { @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 sum = 0; + for (Scorer scorer : subScorers) { + sum += scorer.getMaxScore(upTo); + } + return (float) sum; + } + + @Override + public void setMinCompetitiveScore(float minScore) throws IOException { + super.setMinCompetitiveScore(minScore); + for (Scorer scorer : subScorers) { + scorer.setMinCompetitiveScore(minScore); + } Review comment: This is not correct. Say you have 2 clauses and the minimum score is 2, it is possible to have a competitive hit even if both clauses produce a score that is less than 2, we just need the sum to be greater than 2. -- 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. 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