我使用N-GramsFilter將索引中的數據編入索爾。我面臨的問題是它將包含單詞的所有文檔作爲子字符串返回。就像我在數據中搜索DHA ... 它返回如何在solr響應中排列確切的單詞
DHAND
DHARD
DHAI
DHAM
DHA
的DHA是在5號我想這是因爲它正好術語用戶搜索匹配的第一個。我如何訂購我的答覆,以便確切的匹配文檔應先到達後面跟着部分匹配的文檔...
其次我的數據包含非英文單詞,但他們拼寫英文我可以使用拼寫檢查器自帶solr 。?
我使用N-GramsFilter將索引中的數據編入索爾。我面臨的問題是它將包含單詞的所有文檔作爲子字符串返回。就像我在數據中搜索DHA ... 它返回如何在solr響應中排列確切的單詞
DHAND
DHARD
DHAI
DHAM
DHA
的DHA是在5號我想這是因爲它正好術語用戶搜索匹配的第一個。我如何訂購我的答覆,以便確切的匹配文檔應先到達後面跟着部分匹配的文檔...
其次我的數據包含非英文單詞,但他們拼寫英文我可以使用拼寫檢查器自帶solr 。?
你想copyField的d搜索這兩個領域,但有不同的提升。所以,你在被處理的領域提供非常高的提升,只給你精確的匹配。如果匹配,那個文件就會先找到;如果不是 - 更寬鬆的n-gram字段。
我不明白問題的後半部分(非英文,但拼寫爲英文)。它應該是一個單獨的問題,更多的細節/例子。
在這裏,您可能需要具有與您正在搜索相同的其他字段。
而新複製的字段應該是String類型,可以用於排序。
您現在用於排序的字段已被標記,並且無法給您正確的排序。
1. Create/add another field by using copy field
<copyField source="reference" dest="referenceSort"/>
2. Add the field like below.
<field name="referenceSort" type="string" indexed="true" stored="true"/>
請參閱文件Documentation
排序可以在文檔的「分數」來完成,或任何 多值=「假」索引=「真正的」現場提供的那場無論是 非切分(即:有沒有分析儀),或者使用僅 產生單一期限的分析(即:使用KeywordTokenizer)