[ 
https://issues.apache.org/jira/browse/SOLR-8001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hoss Man updated SOLR-8001:
---------------------------
    Attachment: SOLR-8001.patch


David: please check out the attached patch and let me know if this is what you 
had in mind.

NOTE: I discovered that the sort *order* when using this function on docs w/o 
values is inconsistent with the order when using a single valued field 
(containing the same effictive value) and filed that as a seperate bug since i 
can't think of a clear solution at the moment: SOLR-8005


> 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
>            Assignee: Hoss Man
>            Priority: Minor
>         Attachments: SOLR-8001.patch
>
>
> 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