非拉丁字符集上的SQL Server SoundEx函数?

时间:2008-11-18 20:04:22

标签: sql-server soundex

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

此外,是否有其他语言的功能可能无法正常工作? (例如俄语)

谢谢你,郎弗兰克

3 个答案:

答案 0 :(得分:2)

通过设计,它最适合使用ASCII字符集的英语句子。我在罗马尼亚的一个项目中使用它,我用相应的 sound 相同的ASCII字符替换罗马尼亚特殊字符。它并不完美,但就我而言,它比没有好多了。

我认为在亚洲字符集上应用SOUNDEX会有很大的成功。

答案 1 :(得分:2)

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

我从未在SQL2k中处理soundex,我所知道的是它不能正确处理阿拉伯语。这也可能扩展到其他非拉丁字符集。

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

答案 2 :(得分:2)

Soundex对英语非常具体 - 它可能会或可能不适用于其他语言。在新西兰发生的一个例子是尝试使用Soundex进行患者姓名匹配。不幸的是,太平洋岛屿名称与Soundex的效果不佳,在很多情况下,它们都是同样的小值。必须使用不同的算法。

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