Details
-
Improvement
-
Status: Reopened
-
Minor
-
Resolution: Fixed
-
None
-
None
-
None
-
New
Description
MinFloatFunction (https://github.com/apache/lucene/blob/main/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/MinFloatFunction.java) and MaxFloatFunction (https://github.com/apache/lucene/blob/main/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/MaxFloatFunction.java) both check if values exist twice. This change prevents the duplicate exists check.
Tested with JMH here: https://github.com/risdenk/lucene-jmh
Benchmark | Mode | Cnt | Score and Error | Units |
----------------------------------------------------------------- | ------- | ------------------ | ------- | |
MyBenchmark.testMaxFloatFunction | thrpt | 25 | 64.159 ± 2.031 | ops/s |
MyBenchmark.testNewMaxFloatFunction | thrpt | 25 | 94.997 ± 2.365 | ops/s |
MyBenchmark.testMaxFloatFunctionRareField | thrpt | 25 | 244.921 ± 6.439 | ops/s |
MyBenchmark.testNewMaxFloatFunctionRareField | thrpt | 25 | 239.288 ± 5.136 | ops/s |
Attachments
Attachments
Issue Links
- is related to
-
LUCENE-10542 FieldSource exists implementations can avoid value retrieval
- Closed
- relates to
-
LUCENE-5961 FunctionValues.exist(int) isn't returning false in cases where it should for many "math" based value sources
- Resolved
-
LUCENE-7407 Explore switching doc values to an iterator API
- Resolved
- links to