[
https://issues.apache.org/jira/browse/SOLR-9279?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15366187#comment-15366187
]
ASF GitHub Bot commented on SOLR-9279:
--------------------------------------
Github user softwaredoug commented on the issue:
https://github.com/apache/lucene-solr/pull/49
(note the last few commits based on your comments)
On unifying somewhat with MultiBoolValues, or creating a BiBoolValues, I
went down that path a bit David and it seems to complicate things. A couple of
notes:
- The bool values functions takes as input other boolfunctions, whereas the
comparison value source takes in scalar values. You can see this in how or,
and, xor work: they loop over several boolean value sources and perform and,
or, xor etc. We just need to pluck out two scalar values and compare them
- The name `func` seems descriptive of this general behavior, whereas
`compare` is more descriptive of the operation being perfomed by the comparison
value source
I think the comparison functions are more readable now as they are, but I'd
be curious to get your thoughts.
> 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]