Tony Xu created LUCENE-9395:
-------------------------------

             Summary: ConstantValuesSource creates DoubleValues unnecessarily 
                 Key: LUCENE-9395
                 URL: https://issues.apache.org/jira/browse/LUCENE-9395
             Project: Lucene - Core
          Issue Type: Improvement
          Components: core/search
    Affects Versions: 8.5.2
            Reporter: Tony Xu


At my work we use ConstantValuesSource to represent default values or a 
constant query-level feature by calling `DoubleValuesSource.constant`. I 
realized under the hood the `ConstantValuesSource.getDoubleValues` creates a 
new `DoubleValues` which simply return the specified value each time it is 
called. 

Unless I missed something, I don't see risk of creating one `DoubleValues` as 
use it as the return value of all getDoubleValues() calls given that the 
`DoubleValues` doesn't maintain any state.

We can also offer the user flexibilities of how to initialize it. 

1) `DoubleValuesSource.constant(double constant)` – we can eagerly initialize 
an `DoubleValues` that returns the constant and make it the return value of all 
getDoubleValues() calls.

2) `DoubleValuesSource.constant(DoubleSupplier supplier)`  – For lazy 
evaluation if the constant takes some time to compute and user expects the 
returned DVS will not be used in all code path.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to