2015-11-06 75 views
0

我發出以下查詢:Solr的FQ不是消除結果

"responseHeader": { 
    "status": 0, 
    "QTime": 1, 
    "params": { 
     "q": "(test)", 
     "defType": "edismax", 
     "indent": "true", 
     "fl": "distributor_status,QOH_estimate,id,score", 
     "start": "0", 
     "sort": "score desc,id desc", 
     "fq": "(QOH_estimate:[1 TO *])+OR+(distributor_status:stock)+OR+(*:* -distributor_status:VENDORDISC)", 
     "rows": "10", 
     "wt": "json", 
     "_": "1446833368873" 
    } 
    } 

我找回文件類似如下:

{ "id": "5445a000e4b0fb20ffca4aba", 
    "QOH_estimate": 0, 
    "distributor_status": "VENDORDISC", 
    "score": 4.48295 
    } 

本文檔是否讓過去的FQ?

它的QOH_estimate爲0,所以它失敗了QOH_estimate:[1 TO *]。它的distributor_status是VENDORDISC,所以它失敗distribotor_status:股票。它的distributor_status是VENDORDISC,所以我也希望它會失敗(*:* -distributor_status:VENDORDISC)。由於它失敗了所有3個部分的析取查詢,我期望它被消除,但它並沒有被消除。爲什麼?

回答

1

我認爲你的條款之間的空間是雙重逃避。爲什麼其他情況下,當其他空間沒問題時,你在該輸出中有+ OR +。

如果這沒有幫助,請嘗試添加調試標誌並查看如何將所有內容解析到Lucene級別。這應該給最後的擴張提供一個暗示。