lucene-solr icon indicating copy to clipboard operation
lucene-solr copied to clipboard

LUCENE-8996: maxScore is sometimes missing from distributed responses

Open diegoceccarelli opened this issue 5 years ago • 1 comments

Description

This is an issue in Lucene that affects Solr Distributed Grouped responses: TopGroupsShardResponseProcessor uses TopGroups.merge to merge together the grouped results of different shard. If a shard didn't have results for a particular group, it will return an empty group with maxScore == Float.NaN, merge just performs Math.max that is going to return Float.NaN if one of the two float is Float.NaN.

The issue was open in 2017 by Julien Massenet, I experienced it while working on https://github.com/apache/lucene-solr/pull/300 so I updated his solution to the upstream version.

Solution

The PR adds a function:

private static float updateMaxScore(float currentMaxScore, float newMaxScore)

that will implement a max that works with Float.NaN (same

Tests

A unit test covering all the different combinations of groups that could be processed by merge is provided.

Checklist

Please review the following and check all that apply:

  • [x] I have reviewed the guidelines for How to Contribute and my code conforms to the standards described there to the best of my ability.
  • [x] I have created a Jira issue and added the issue ID to my pull request title.
  • [x] I am authorized to contribute this code to the ASF and have removed any code I do not have a license to distribute.
  • [x] I have given Solr maintainers access to contribute to my PR branch. (optional but recommended)
  • [x] I have developed this patch against the master branch.
  • [ ] I have run ant precommit and the appropriate test suite.
  • [x] I have added tests for my changes.
  • [ ] I have added documentation for the Ref Guide (for Solr changes only).

diegoceccarelli avatar Sep 28 '19 17:09 diegoceccarelli

Hmm, I see this src fix was committed, but the new unit test was not committed -- was that intentional?

mikemccand avatar Dec 08 '21 16:12 mikemccand