2014-06-18 93 views
0
  • 文件1:PRODUCT_NAME:插件,MODEL_NUMBER:ABC123
  • 文檔2:PRODUCT_NAME:插件,MODEL_NUMBER:def456
  • 文件3:PRODUCT_NAME:插件,MODEL_NUMBER:ghi789

假設我們使用edismax,並且我們的用戶輸入他們的型號並輸入小部件abc12x進入搜索框。我們匹配product_name上的所有三個文檔,但沒有model_number,儘管我們與文檔1有很接近的匹配。Solr的edismax - 完全匹配與模糊

處理這種情況的最佳方法是什麼,以便我們可以讓用戶意識到他們的model_number不是完全匹配但Doc 1可能是他們正在尋找的?模糊搜索(abc12x〜)顯然會優雅地處理這個問題,但我們並不知道它會被需要,我們也不希望只用它來最終傷害搜索相關性,性能等。

可能是一個基本的問題,但新的Solr。謝謝。

回答

0

您的索引會變大很多,但N-grams是獲得部分匹配的好方法。對於您的情況,edge N-gram將起作用。

0

您可以添加字符接近改性劑的條款在查詢時處理這個問題:

q={!edismax}widget~3 abc12x~3 

這將在所提供的搜索項的'edit distance'發現在指數方面。這也有利於將查詢術語'acb123'與索引術語'abc123'相匹配。插入或刪除一個字符是每一個編輯,交換兩個字符是兩個編輯。