[ 
https://issues.apache.org/jira/browse/LUCENE-8574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17139437#comment-17139437
 ] 

Michael McCandless commented on LUCENE-8574:
--------------------------------------------

{quote}please, lets keep the boolean and not bring NaN into this.
{quote}
+1
{quote}And it seems the patch attached to this issue could not handle it as 
well (since DoubleValues generated for the same LeafReaderContext is not the 
same, we still get tons of DoubleValues created).
{quote}
Hmm, good catch!  So we somehow need to ensure that we use the same 
{{DoubleValues}} instance per-segment per-binding?  But how can we safely do 
that, i.e. we can't know that this current caller will consume the same 
{{DoubleValues}} in the same {{docid}} progression?

> ExpressionFunctionValues should cache per-hit value
> ---------------------------------------------------
>
>                 Key: LUCENE-8574
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8574
>             Project: Lucene - Core
>          Issue Type: Bug
>    Affects Versions: 7.5, 8.0
>            Reporter: Michael McCandless
>            Assignee: Robert Muir
>            Priority: Major
>         Attachments: LUCENE-8574.patch, unit_test.patch
>
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> The original version of {{ExpressionFunctionValues}} had a simple per-hit 
> cache, so that nested expressions that reference the same common variable 
> would compute the value for that variable the first time it was referenced 
> and then use that cached value for all subsequent invocations, within one 
> hit.  I think it was accidentally removed in LUCENE-7609?
> This is quite important if you have non-trivial expressions that reference 
> the same variable multiple times.
> E.g. if I have these expressions:
> {noformat}
> x = c + d
> c = b + 2 
> d = b * 2{noformat}
> Then evaluating x should only cause b's value to be computed once (for a 
> given hit), but today it's computed twice.  The problem is combinatoric if b 
> then references another variable multiple times, etc.
> I think to fix this we just need to restore the per-hit cache?
>  



--
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