2016-06-21 30 views
0
我無法對Solr的3.6.1默認的操作設置或使用edismax解析器(q.op = OR)

無法在Solr的3.6設置默認查詢操作。*

我有同樣的在solr版本4.10.4和3.6.1收集

我搜索:4.10.4中的pascal fubar在任何文檔中從未出現fubar這個詞。看看我看到的調試信息:

"parsedquery_toString": "+((name:maxtor) (name:fubar))", 

這匹配了很多文檔(那些與他們帕斯卡)。

我在我的3.6.1 Solr的執行相同的搜索,看看:

http://localhost:8983/solr/select?q=maxtor+fubar&wt=json&indent=true&debugQuery=true&defType=edismax&stopwords=true&lowercaseOperators=true&q.op=OR 

+(((name:maxtor) (name:fubar))~2) 

基本上說,FUBAR和Pascal必須在2個位置發生。所以這匹配零文檔。

查詢:pascal OR fubar的作品。

有沒有人有任何指針,爲什麼〜2被添加到查詢中?請注意,我使用了標準的4.10.4 solr配置,並將我的3.6.1配置中的搜索處理程序合併,因此它們不是100%相同的。

+0

我剛剛用標準示例文檔的香草3.6.1試過,它也是這樣做的。默認的操作符似乎不適用於edismax分析器。 –

+0

試過3.6.2,同樣的問題。 4. *上的默認收集工作正常。所以我想這是一個edismax有趣的。我找不到任何提及它。也許q.op在3.6。*上不支持edismax。 –

回答

0

要回答我自己的問題,因爲某人可能有同樣的問題,它似乎是3.6+和早期4. * dismax和edismax解析器的一個功能(錯誤)。這個答案給出了一些交代

Changing the default operator from OR to AND in Solr (Magento Enterprise)

,似乎與此相關的問題

https://issues.apache.org/jira/browse/SOLR-2649

在任何情況下,4.10.4版本的Solr我試圖以同樣的方式並沒有表現。

的解決方案是我們的1對必須匹配參數或行爲

&mm=1 

希望這可以幫助別人,因爲我花了相當長的時間來調試。