[
https://issues.apache.org/jira/browse/SOLR-9279?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15368155#comment-15368155
]
ASF GitHub Bot commented on SOLR-9279:
--------------------------------------
Github user dsmiley commented on the issue:
https://github.com/apache/lucene-solr/pull/49
Just one thing -- have compare() take the FunctionValue so that a compare
impl can choose to call doubleVal vs longVal or whatever else. And the impls
you add to Solr can call doubleVal. Someone truly might want to extend this to
call something other than doubleVal; the set of values of doubleVal is disjoint
from longVal. Or maybe someone has got the data in objectVal for some reason.
After that please post a .patch file to JIRA.
https://wiki.apache.org/lucene-java/HowToContribute#Creating_a_patch though
those instructions should be modified to indicate how to generate a diff from
the point the current branch diverged from master.
> Add greater than, less than, etc in Solr function queries
> ---------------------------------------------------------
>
> Key: SOLR-9279
> URL: https://issues.apache.org/jira/browse/SOLR-9279
> Project: Solr
> Issue Type: New Feature
> Security Level: Public(Default Security Level. Issues are Public)
> Components: search
> Reporter: Doug Turnbull
> Fix For: master (7.0)
>
>
> If you use the "if" function query, you'll often expect to be able to use
> greater than/less than functions. For example, you might want to boost books
> written in the past 7 years. Unfortunately, there's no "greater than"
> function query that will return non-zero when the lhs > rhs. Instead to get
> this, you need to create really awkward function queries like I do here
> (http://opensourceconnections.com/blog/2014/11/26/stepwise-date-boosting-in-solr/):
> if(min(0,sub(ms(mydatefield),sub(ms(NOW),315569259747))),0.8,1)
> The pull request attached to this Jira adds the following function queries
> (https://github.com/apache/lucene-solr/pull/49)
> -gt(lhs, rhs) (returns 1 if lhs > rhs, 0 otherwise)
> -lt(lhs, rhs) (returns 1 if lhs < rhs, 0 otherwise)
> -gte
> -lte
> -eq
> So instead of
> if(min(0,sub(ms(mydatefield),sub(ms(NOW),315569259747))),0.8,1)
> one could now write
> if(lt(ms(mydatefield),315569259747,0.8,1)
> (if mydatefield < 315569259747 then 0.8 else 1)
> A bit more readable and less puzzling
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]