我正在尝试使用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。感谢
答案 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)))"