c# - 实现智能搜索/模糊字符串比较

标签 c# asp.net search soundex

我在 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/

相关文章:

javascript - 如何优化搜索算法

c# - Web API 中的单元测试自定义路由

c# - 同时启动多个线程

html - 将 CSS 添加到复选框

string - 搜索多个子字符串的字符串的好算法是什么?

search - AppleScript 从网页中读取内容

c# - LINQ to Entities - 更新二进制字段

c# - 有没有办法使用 C# 从我的 Function App 中删除 Azure Function?

asp.net - 在 FormView EditItemTemplate 中格式化日期

c# - 在 Windows Server 2012 r2 上部署时出现 BadImageFormatException