You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Doug Turnbull (JIRA)" <ji...@apache.org> on 2016/07/06 00:54:10 UTC

[jira] [Created] (SOLR-9279) Add greater than, less than, etc in Solr function queries

Doug Turnbull created SOLR-9279:
-----------------------------------

             Summary: 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 to be attached to this Jira adds the following function queries

-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: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org