2

我想让我的应用程序搜索姓名并返回相似的名字。即如果用户搜索约翰,乔纳森的也应该被返回。

Soundex 搜索似乎没有这样做。除了存储相关名称的字典之外,还有其他选择吗?

4

2 回答 2

1

您应该查看 Levenshtein 编辑距离,并寻找与目标字符串相比编辑距离较低的字符串。

这是 SQL Server 的更多信息和实现

http://www.kodyaz.com/articles/fuzzy-string-matching-using-levenshtein-distance-sql-server.aspx


编辑距离显示您需要对字符串进行的最小编辑次数(字符删除、替换或插入)以获得目标字符串。

因此,例如“apple”和“aple”的编辑距离将为 1(删除“p”);

第三方编辑

来自 kodyaz.com 的代码指向 Arnold Fribble 在 sqlteam.com/forums 上的 帖子您可以在2009 年的这个问题中找到代码

于 2012-02-23T13:05:54.983 回答
1

不,没有——因为你寻找的是对相似性的解释,而不是听起来相似的东西。保留替代品是您唯一的选择。

于 2012-02-23T13:02:15.563 回答