3

我正在尝试使用 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 AND or and OR 。我该怎么做呢?我正在使用 solr 4.1。谢谢

4

2 回答 2

0

尝试

fq={!frange l=0 u=1 v=$myabs}&myabs=abs(sub(col1,val1))
于 2016-05-13T13:57:48.863 回答
0

我偶然发现了类似的问题并找到了解决方案。把它贴在这里,这样它可能会帮助别人。可以使用 solr 的query :"..." 功能来修改原始查询:

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)))"
于 2017-11-08T10:09:30.163 回答