我想让我的应用程序搜索名称并返回类似的名字。即如果用户搜索约翰,乔纳森的也应该返回。Sql Server Soundex名称搜索
Soundex搜索似乎没有做到这一点。除了存储相关名字的字典之外,还有其他的选择吗?
我想让我的应用程序搜索名称并返回类似的名字。即如果用户搜索约翰,乔纳森的也应该返回。Sql Server Soundex名称搜索
Soundex搜索似乎没有做到这一点。除了存储相关名字的字典之外,还有其他的选择吗?
您应该看看Levenshtein编辑距离,并查找与目标字符串相比编辑距离较短的字符串。
这里是SQL Server的它的详细信息和实施
http://www.kodyaz.com/articles/fuzzy-string-matching-using-levenshtein-distance-sql-server.aspx
编辑距离显示的编辑的最小数量(字符缺失,置换或插入),你需要做出一个字符串得到你的目标字符串。例如'apple'和'aple'的编辑距离为1(删除'p');
不,没有 - 因为你寻找的是类似的解释,而不是类似的声音。保持选择是你唯一的选择。
一种可能性可能是将单词修剪为更短的长度 - 在本例中,两个单词的soundex都带有相同的值 – kaj 2012-02-23 13:01:44
@KAJ但这只是这些具体名称的一种情况。我认为这归结为具有关于应用程序域的更多信息的人,即基本SQL函数不会。 – Yuck 2012-02-23 13:02:41
因此,为什么我不提供它作为答案:-) – kaj 2012-02-23 13:10:16