实现智能搜索/模糊字符串比较我在我的ASP.NETMVC应用程序中有一个网页,客户可以在其中搜索供应商。供应商在网站上捕获自己的详细信息。客户想要一个“智能搜索”功能,即使供应商的拼写与搜索框中输入的内容“略有不同”,他们也可以搜索并找到供应商。我不知道客户的“略有不同”的概念是什么。我一直在研究实现自定义soundex算法。这会根据单词的发音将单词转换为数字。然后使用该数字进行比较。例如:zakzak将被编码为相同的值。我可以考虑其他选择吗?您可以将Levenshtein距离与数据库中供应商的“标签”字段一起使用,以实现“智能搜索”样式功能。它非常基本,但适用于“Zack/Zach”等。通过向您的数据库添加标签,您可以处理人们可以通过其首字母缩写词或其他口语名称搜索供应商的情况。请参阅如何计算给定2个字符串的距离相似性度量?和http://www.dotnetperls.com/levenshtein了解实施细节。您需要的是带有语音分析过滤器的索引搜索。Lucene.NET就是这样做的。http://lucene.apache.org/core/4_0_0/analyzers-phonetic/org/apache/lucene/analysis/phonetic/PhoneticFilterFactory.htmlHowtoperformphoneticandapproximatesearchinLucene.netSeehereforPhonetix's。NET版本:http://sourceforge.net/projects/phonetixnet/以下是有关如何在C#中实现它的更多信息:lucene.netspeechfilter您还可以使用BeiderMorseEncoder,它可以处理多种语言。关于查找拼写相似的单词,为什么不使用模糊搜索呢?asp.net中如何在Lucene.net中进行模糊搜索?Lucene.net模糊短语搜索也有很多可通过CLR-Stored-Procedure获得的字符串度量函数:http://anastasiosyal.com/post/2009/01/11/Beyond-SoundEx-Functions-for-Fuzzy-Searching-在-MS-SQLserver以上就是C#学习教程:实现智能搜索/模糊字符串比较,分享所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多加关注——本文来自网络收藏,不代表立场,如涉及侵权,请点击有权联系管理员删除。如需转载请注明出处:
