Apaches Solr搜索引擎是否提供近似字符串匹配,例如通過Levenshtein算法?如何配置SOLR以使用Levenshtein近似字符串匹配?
我正在尋找一種方法來查找姓氏的客戶。但我無法保證名稱的正確性。即使我搜索「Levenstein」,我如何配置SOLR以使其能夠找到人 「Levenshtein」?
Apaches Solr搜索引擎是否提供近似字符串匹配,例如通過Levenshtein算法?如何配置SOLR以使用Levenshtein近似字符串匹配?
我正在尋找一種方法來查找姓氏的客戶。但我無法保證名稱的正確性。即使我搜索「Levenstein」,我如何配置SOLR以使其能夠找到人 「Levenshtein」?
通常,這是通過SpellCheckComponent完成的,默認情況下內部使用Lucene SpellChecker,它實現了Levenshtein。
wiki真的很好地解釋了它是如何工作的,如何配置它以及可用的選項,在這裏沒有重複的地方。可以使用。
另一種選擇是使用phonetic filter而不是Levenshtein。
Mauricio給出了很好的答案,我唯一的「便宜」補充就是將〜字符附加到所有你想模糊匹配的術語上。如果你正在使用默認設置,這會給你模糊匹配。
@MattMcKnight:我想在solr中做同樣的距離測量,但是**〜**在我的工作不正常。我嘗試使用**?q = term:「apple」〜2 **任何幫助 – iNikkz 2014-12-16 12:20:00
@iNikkz If你把引號放在蘋果周圍,我認爲它變成了一個短語查詢,所以〜2意味着鄰近搜索,而不是編輯距離。嘗試刪除引號 – MattMcKnight 2014-12-16 22:48:39
@MattMcKnight:我嘗試刪除引號,但它提供了太多的結果,因爲我已經對索引和查詢都使用了語音過濾。我在這裏粘貼了我的問題 - [http://stackoverflow.com/questions/27484326/getting-most-likely-documents-of-the-query-using-phonetic-filter-in-solr]。你能幫我嗎? – iNikkz 2014-12-17 05:20:52
Mauricio,你可以檢查模糊搜索運算符和語音過濾器的兩個鏈接?兩者似乎都被打破了。謝謝! – reto 2012-07-10 08:13:45