我在 ASP.NET MVC 应用程序上有一个网页,客户可以在其中搜索供应商。供应商在网站上获取自己的详细信息。客户想要一个“智能搜索”功能,即使供应商的拼写与搜索框中键入的内容“略有不同”,他们也可以在其中搜索并找到供应商。
我不知道客户所说的“略有不同”是什么意思。我一直在研究实现自定义 soundex 算法。这会根据单词的发音将单词转换为数字。然后使用该数字进行比较。
例如:
Zach
Zack
将编码为相同的值。还有其他我可以考虑的选择吗?
最佳答案
您可以使用 Levenshtein distance与数据库中供应商的“标签”字段相结合,实现“智能搜索”风格的功能。
它非常基础,但适用于“Zack/Zach”等案例。
在您的数据库中添加标签可以让您处理人们可能通过首字母缩略词或其他口语名称搜索供应商的情况。
参见 How to calculate distance similarity measure of given 2 strings?和 http://www.dotnetperls.com/levenshtein了解实现细节。
关于c# - 实现智能搜索/模糊字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24948750/