功能块 SOUNDEX

功能块 SOUNDEX 计算字符串的发音相似度。

Soundex 值具有以下特性:发音相似的单词会生成相同的 Soundex 值。这可以用于在数据库中进行搜索,当您知道发音但不知道确切拼写时。函数 Soundex 返回一个以字母开头的四个字符串。

输入 STR

该输入定义要计算的字符串。

输出

返回带有 Soundex 代码的字符串。

基本规则

每个 Soundex 代码由一个字母后跟三个数字组成,例如 A532 用于 Antcas。如果要编码的单词有足够多的字母可以生成更多数字,则在第三个数字后截断。如果单词的字母不足,则用零填充最后的数字。因此,亚洲姓名 Lee 被编码为 L000

数字 代表的字母
1 B, F, P, V
2 C, G, J, K, Q, S, X, Z
3 D, T
4 L
5 M, N
6 R

元音 A, E, I, OU 以及辅音 H, WY 在第一个字符之外应忽略。此外,对于德语可以定义:元音 Ä, ÖÜ 应忽略,尖音符号 ß 编码为简单的 S

如果原始字符串中连续的多个字母具有相同的 Soundex 代码,则结果中只出现一次,例如从 abfx 得到大约 A120 (a 保留,因为是第一个字母,bf 都生成相同的代码 1, x 生成 2, 最后附加一个零以获得四个字符)。

在 Soundex 方法的实际应用中,主要有两点受到批评:首先,它非常针对英语,其次,它只提供非常粗略的分析。

然而,必须指出,所描述的算法可能是最常用于音标搜索。这肯定有助于 Oracle 数据库已经很早就实现了相应的 PL/SQL 标准命令。