2015-12-09 30 views
0

我使用API​​實施Solr搜索。當我使用參數「Chillout Lounge」調用它時,它會返回與「Chillout Lounge」字符串相同/相似的集合。 但是,當我搜索「Chillout Lounge Box」時,它會返回沒有這三個單詞中任何一個的結果(在DB中存在具有這3個值的值,但它們不會被返回)如何在Solr中執行精確搜索

根據我的說法,Solr使用模糊搜索,但是當它完成後,它應該返回一些值,這些值至少有一個這樣的值。

或者,我應該對我的schema.XML進行可能的更改,這樣會給我適當的值。

回答

0

首先 - 「模糊搜索」是您必須要求的一項功能(通過在標準Lucene查詢語法中使用~)。

如果您正在討論定期搜索,則可以使用q.op來選擇要使用的運算符。 q.op=AND將確保所有條款匹配,而q.op=OR將使任何包含至少一個條款的文檔被返回。只要你沒有使用fq,那麼匹配更多條款的文檔應該得分更高(因爲分數會在多個條款中加起來),因此在結果集中顯示得更高。

您可以使用Web界面中的調試查詢功能查看文檔每個詞的分數,並找出文檔返回的原因。如果文檔與的任何條款不匹配,則不應退回,除非您要求返回所有文檔。

請注意,爲您搜索的字段定義的分析器鏈可能會影響所認爲的匹配而不是匹配。

你必須添加一個適當的例子來得到更詳細的答案。