2013-07-07 29 views
2

我試圖用OR/AND做一個功能性查詢,但似乎這樣做存在限制。下面是SQL相當於查詢我想執行的邏輯:嵌套的功能範圍查詢或OR

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))) 

現在看來似乎是不可能使用AND和OR和OR在同一FQ使用功能QUER時年。我會如何去做這件事?我正在使用solr 4.1。由於

+0

檢查(-col1:[*到*]和{FRANGE L = 0 U = 1 } abs(sub(col2,val1))第一個工作。看到一些與-col1:[* TO *]有關的問題,你可以嘗試(*:* -col1:[* TO *]) – Jayendra

+0

謝謝你的建議,拋出一個錯誤,這個人有同樣的問題,他的解決方案是分開查詢,如果你要交叉所有東西,那麼工作正常,但它不適用於OR。問題/ 16545115 /混合-solr的範圍功能與 - 附加參數?RQ = 1 – user2558898

回答

0

嘗試

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

我偶然發現了類似的問題,並找到了解決方案。在這裏發佈它可能會有所幫助。 原來的查詢可以使用查詢修改這樣的: 「......」 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)))"