2017-09-14 45 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