使用OR嵌套功能范围查询

时间:2013-07-07 22:16:11

标签: solr

我正在尝试使用OR / AND进行功能查询,但是这样做似乎有局限性。以下是我尝试执行的查询的SQL等效逻辑:

ABS(col1-:val1)<1 OR (col1 IS NULL AND ABS(col2-:val1)<1)

这是我目前工作的fq查询,用于获取ABS差异<1的文档。

fq={!frange l=0 u=1}abs(sub(col1,val1))

这是我正在尝试执行的但不能没有错误

fq={!frange l=0 u=1}abs(sub(col1,val1)) OR (-col1:[* TO *] AND {!frange l=0 u=1}abs(sub(col2,val1)))

在使用功能查询时,似乎无法在同一个fq中使用和AND或OR。我该怎么做呢?我使用的是solr 4.1。感谢

2 个答案:

答案 0 :(得分:0)

尝试

fq={!frange l=0 u=1 v=$myabs}&myabs=abs(sub(col1,val1))

答案 1 :(得分:0)

我偶然发现了类似问题,并找到了解决方案。在这里发布它可能会对某人有所帮助。 可以使用 query 修改原始查询:&#34; ...&#34; solr的特点:

fq=_query_:"{!frange l=0 u=1}abs(sub(col1,val1))" OR (-col1:[* TO *] AND _query_:"{!frange l=0 u=1}abs(sub(col2,val1)))"