2017-09-14 47 views
0

我正在使用MongoDB通過.Net.And我想做一個自動完成api。 但我不知道如何匹配在一個案例。讓我通過舉例來解釋它;.net中的自動完成與mongodb

I wrote -- Results 
    "Ema" => "Email" , ""... 
    "Emasil" => "Email", ""... 
    "Emasil Li" => "Email List", ""... 
    "Emasil Lit" => "Email List", ""... 
    "Emasil Litk" => "Email List", ""... 

如圖所示以上,即使我寫的錯誤,它給我的results.This到底是什麼我need.But我沒有任何想法如何做到這一點。 你能告訴我一種方法來解決這個問題嗎?

回答

0

我不認爲MongoDB可以完全幫助你(可能是錯誤的)。似乎你想創建一個拼寫糾正/預測文本類型的解決方案?有一些預建的庫可以爲你做到這一點,就像google用Python編寫的那樣:http://norvig.com/spell-correct.html。我猜你可以在mongodb中存儲字典或潛在的文本匹配集合,並以某種方式將其納入您的解決方案中,但我不知道以拼寫檢查類型的方式查詢集合的字段的方法。

0

回答問題Implement autocomplete on MongoDB也許能夠幫到你。

一般而言,您的問題與fuzzy string search有關。基本算法使用Levenshtein距離來確定字符串之間的相似程度。但還有另外一些算法,比如bitap算法,Needleman-Wunsch算法,Spell-checker方法,N-gram方法等等。您可以在文章Fuzzy string searchFuzzy search algorithm (approximate string matching algorithm)中找到更多詳細信息。還請檢查搜索庫,例如Apache Lucene.Net(有關更多詳細信息,請參見Apache Lucene),fuzzystring