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

David Smiley commented on SOLR-12139:
-------------------------------------

bq. So it's a ValueSource which pretends to be numeric by nether extends 
LongDocValues / IntDocValues / DoubleDocValues / FloatDocValues nor implements 
objectVal(...) method. I personally feel like it would be better to fix such 
ValueSources instead of making additional checks, but if a backward 
compatibility is a must have...having new equal function would work.

That's not what I'm saying; I'm not implying any ValueSource/FunctionValues 
impls are broken.  I'm suggesting someone right now has a something like this: 
eq(5,def(fieldA,5)) wherein fieldA is a "double" field.   eq() will check the 
left and find a numeric that is either int/long.  Then it will evaluate the 
right side and not know what it is so it uses the object comparison.  Lets say 
that a document has 5.0 in this field on a particular document.  
Integer.equals(Double ...) will fail even though 5.0 == 5.  I believe that 
works today but not with this patch.  We should have a test for this here.

BTW for efficiency we may want to say that if *either* left or right is a known 
numeric FunctionValues type then do double comparison (instead of insisting on 
both).  It doesn't make sense to compare a numeric field with something 
non-numeric any way.  The change I suggest with this statement is a simple 
switch of "&&" to "||" in createComparator.

> Support "eq" function for string fields
> ---------------------------------------
>
>                 Key: SOLR-12139
>                 URL: https://issues.apache.org/jira/browse/SOLR-12139
>             Project: Solr
>          Issue Type: Improvement
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: search
>            Reporter: Andrey Kudryavtsev
>            Assignee: David Smiley
>            Priority: Minor
>         Attachments: SOLR-12139.patch, SOLR-12139.patch, SOLR-12139.patch, 
> SOLR-12139.patch, SOLR-12139.patch
>
>
> I just discovered that {{eq}} user function will work for numeric fields only.
> For string types it results in {{java.lang.UnsupportedOperationException}}
> What do you think if we will extend it to support at least some of string 
> types as well?



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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

Reply via email to