Test sorting on numeric fields without specifying missing value behavior

Description

UPDATE: this was originally filed as a bug claiming there could be an NPE in this case. This assertion was wrong, however we indeed used not to test this scenario, so we're still going to merge a patch to expand the test coverage.


Original ticket description:

I did not check, but judging from the code that is what will happen. See how OnTheFlyNestedSorted (renamed to DocValuesJoin after https://hibernate.atlassian.net/browse/HSEARCH-3797#icft=HSEARCH-3797) accepts primitive values for the missingValue parameter, while the caller hold an object value which should be null when the user didn't call .missingLast()/.missingAs()/.missingFirst().

We should add a test and fix this.

Ideally we should make OnTheFlyNestedSorted/DocValuesJoin accept a null missingValue and return false from advanceExact when a value is missing. This would allow using the same class for projections on docvalues.

If it's too hard to implement, another solution (perhaps easier) would be to just set a default missingValue to 0.0f, for example. That's how org.apache.lucene.search.FieldComparator.FloatComparator#getValueForDoc behaves when a value is not found in a document anyway.

I'm not sure setting a default "missing value behavior" would be the solution: maybe Lucene has a built-in

Activity

Show:
Fixed

Details

Assignee

Reporter

Sprint

Fix versions

Priority

Created December 19, 2019 at 8:41 AM
Updated January 22, 2020 at 2:18 PM
Resolved January 20, 2020 at 1:06 PM

Flag notifications