2008-11-18 78 views
1

SQL Server的(2000)Soundex函数是否适用于亚洲字符集?我用它在查询中,它似乎没有正常工作,但我意识到,这可能是因为我不知道如何阅读中文...非拉丁字符集上的SQL Server的SoundEx函数?

此外,有没有其他语言功能可能有麻烦工作? (俄罗斯为例)

谢谢
弗兰克

+0

您最有可能遇到的一种语言是阿拉伯语。大多数使用SOUNDEX的人通常都会为他们推出自己的解决方案... – 2008-11-18 20:14:09

回答

2

Soundex对于英语来说相当具体 - 它在其他语言中可能会也可能不会很好。新西兰发生的一个例子是使用Soundex试图进行患者姓名匹配。不幸的是,太平洋岛屿的名字在Soundex中并不能很好地工作,在很多情况下,这些名称都被散列到同一小部分值中。必须使用不同的算法。

您的里程可能会有所不同。在更新版本的SQL Server上,您可以编写一个CLR函数来执行其他计算。

2

在设计上它的工作原理最好使用ASCII字符集的英文句子。我曾在罗马尼亚的一个项目中使用过它,我用相应的ASCII字符取代了罗马尼亚的特殊字符,其的声音差不多相同。这并不完美,但在我的情况下,它比没有好多了。

我想你在亚洲字符集上应用SOUNDEX方面没有很大的成功。

2

我知道老版本的SQLServer中的soundex忽略了任何非英文字符。我相信它甚至没有处理拉丁文-1,更不用说更具异国情调的东西了。

我从来没有在SQL2k中处理soundex,我所知道的一切都是它不能正确处理阿拉伯语。这可能延伸到其他非拉丁字符集。

在任何情况下,基于soundex的算法不可能为非英语语言产生可接受的结果,即使除了字符集问题。 Soundex专门用于处理名称的英文发音(主要是西欧原产地名称),并且在该用途之外不起作用。对于旨在解决相关语言的soundex或其他不相关语音相似度算法的几种变体中的任何一种,您通常会更好。