
功能區塊 SOUNDEX 計算字串的音相似性。
Soundex 值具有以下特性:發音相似的單詞會產生相同的 Soundex 值。這可以用於在資料庫中搜索,當您知道發音但不知道確切拼寫時。函數 Soundex 返回一個由四個字符組成的字串,以一個字母開頭。
輸入定義要計算的字串。
返回帶有 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, O 和 U 以及輔音 H, W 和 Y 在第一個字符以外應忽略。擴展到德語,可以定義:元音 Ä, Ö 和 Ü 應忽略,鋒利的 S ß 如簡單的 S 編碼。
如果原始字串中的多個連續字母具有相同的 Soundex 代碼,則結果中只出現一次,從 abfx 大約變為 A120 (a 保留,因為第一個字母,b 和 f 都產生相同的代碼 1, x 產生 2, 最後添加一個零以獲得四個字符)。
在實際應用 Soundex 方法時,主要有兩點受到批評:首先,它非常針對英語,其次,它只提供非常粗略的分析。
然而,必須指出,所描述的演算法可能是最常用於語音搜索的演算法。這一定程度上是由於 Oracle 資料庫已經很早就實現了相應的 PL/SQL 標準命令。