jpountz commented on code in PR #13697: URL: https://github.com/apache/lucene/pull/13697#discussion_r1754334921
########## lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java: ########## @@ -348,34 +414,24 @@ public void setMinCompetitiveScore(float minScore) throws IOException { } } - private void setScoreAndFreq() throws IOException { + private float scoreChildDocs() throws IOException { if (childApproximation.docID() >= parentApproximation.docID()) { - return; + return parentScore.score(); } - double score = scoreMode == ScoreMode.None ? 0 : childScorer.score(); - int freq = 1; - while (childApproximation.nextDoc() < parentApproximation.docID()) { - if (childTwoPhase == null || childTwoPhase.matches()) { - final float childScore = scoreMode == ScoreMode.None ? 0 : childScorer.score(); - freq += 1; - switch (scoreMode) { - case Total: - case Avg: - score += childScore; - break; - case Min: - score = Math.min(score, childScore); - break; - case Max: - score = Math.max(score, childScore); - break; - case None: - break; - default: - throw new AssertionError(); + + float score = 0; + if (scoreMode != ScoreMode.None) { + parentScore.reset(childScorer); + while (childApproximation.nextDoc() < parentApproximation.docID()) { + if (childTwoPhase == null || childTwoPhase.matches()) { + parentScore.addChildScore(childScorer); } } + + score = parentScore.score(); } + + // TODO: Fix this error check when score mode is None Review Comment: can you explain a bit more why it's broken, someone coming to this code without context wouldn't understand immediately I believe -- 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