David Smiley created SOLR-8001:
----------------------------------

             Summary: Using value sources on a multi-valued field can result in 
an exception if no data
                 Key: SOLR-8001
                 URL: https://issues.apache.org/jira/browse/SOLR-8001
             Project: Solr
          Issue Type: Bug
            Reporter: David Smiley
            Priority: Minor


SOLR-2522 Introduced the ability to reference a multi-valued field with doc 
values in a function query (value source) such as like this (an example using 
it for sorting): {{sort=field(myMultiValField,min) asc}}.  In the event that 
the document has no values for this field, this feature behaves nicely in the 
aforementioned example.  And it does if you reference in a 'fl' (as a 
DocTransformer): {{fl=id,myMultiValField:field(myMultiValField,min)}}.  In that 
case, the returned document simply doesn't have a name-value pair.  *But*, if 
you sort on a more complex function that incorporates this, then you get an 
ArrayIndexOutOfBoundsException.  Such as this:
{{sort=sum(otherField,field(myMultiValField,min)) asc}}  There may be other 
conditions where this same exception will be thrown; not sure.

The root cause can either be considered one of two things (or both) I think:
* The longVal, intVal, etc. methods on FunctionValues need to be prepared for 
the possibility that the document has no data, in which case it should return a 
default value.  This means TrieLongField (& friends) are erroneous.
* ValueSource.ValueSourceComparator could/should (?) call {{exists}} before 
calling {{doubleVal}} in the various methods where it does.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to