我想让我的应用程序搜索姓名并返回相似的名字。即如果用户搜索约翰,乔纳森的也应该被返回。
Soundex 搜索似乎没有这样做。除了存储相关名称的字典之外,还有其他选择吗?
我想让我的应用程序搜索姓名并返回相似的名字。即如果用户搜索约翰,乔纳森的也应该被返回。
Soundex 搜索似乎没有这样做。除了存储相关名称的字典之外,还有其他选择吗?
您应该查看 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 年的这个问题中找到代码
不,没有——因为你寻找的是对相似性的解释,而不是听起来相似的东西。保留替代品是您唯一的选择。