- 我使用的Solr 3.3.0使用例如文件夾
- solrQueryParser defaultOperator = 「或」
我的問題是,沒有按Solr的」開箱即用的工作當我搜索一個多詞詞組時,t似乎返回了很好的結果。多字的查詢上Solr的
以下搜索不返回任何結果。
然而,當我搜索屋頂或固定,他們都返回了幾個不錯的成績。
在查詢 「屋頂固定」,我希望Solr的返回7個結果。 屋頂的4條記錄和修復的3條記錄。
是否有任何特殊配置需要發生?
我的問題是,沒有按Solr的」開箱即用的工作當我搜索一個多詞詞組時,t似乎返回了很好的結果。多字的查詢上Solr的
以下搜索不返回任何結果。
然而,當我搜索屋頂或固定,他們都返回了幾個不錯的成績。
在查詢 「屋頂固定」,我希望Solr的返回7個結果。 屋頂的4條記錄和修復的3條記錄。
是否有任何特殊配置需要發生?
您剛纔錯誤地表達了您的查詢。
嘗試從管理頁面下面的查詢:
(屋頂或固定)
或者,如果你想找到在某一特定領域:
字段名:(屋頂或固定)
當你給SOLR一個像「屋頂修理」這樣的查詢時,你有效地要求在默認字段(或默認的dismax字段集合)中包含「屋頂」和「修復」的所有文檔。意思是重寫你的查詢用戶輸入。這就是我們所做的,但規模較大。我們有一個前端界面,提供了大量的選項並從中生成一個SOLR查詢。人們可以在特定字段中輸入搜索詞,如果有多個詞並且沒有被引用,我們添加AND。然後我們把所有填充的字段或者放在一起。有些字段是特殊的,有一個MIN和一個MAX版本,我們把它變成範圍查詢:[0 TO 125000]
。還有一些下拉菜單可以支持多種選擇,我們也可以將它們變成一個OR,例如State:("WA" OR "CA" OR "OR" OR "NV")
Solr的方法不一定返回7個結果「屋頂或固定」作爲一個結果可能包括既「屋頂」和「固定」。假設「屋頂」有3個結果,「固定」有4個結果,但「屋頂」和「固定」都出現在2個結果中。由於Solr不會返回重複結果,因此只能搜索「屋頂或修復」的5個結果。
您是否嘗試過使用網址編碼空間(「%20」)而不是「+」號?如果默認的操作符是OR,則不需要包含該操作符。
我想我理解你的觀點,但是,我讓用戶通過前端界面進行搜索,所以我不能要求用戶輸入*(屋頂或固定)*。 – Filype 2012-02-27 20:54:01
感謝您的額外解釋,但通過輸入http:// localhost:8080/solr/select /?q =(roof%20OR%20fixing) – Filype 2012-02-27 22:14:36
Filype,我似乎沒有得到更多結果如果您要讓用戶搜索前端,並期待搜索行爲或搜索行爲,則應在發送給SOLR之前在後端處理它們的查詢。如上所述,您應該使用圓括號準備您的值。如果要添加OR或AND,請給用戶一個選項,檢測該選項,然後在將它們傳遞給SOLR之前將它們準備並注入到SOLR查詢中。 – Atomox 2013-04-30 14:25:19