PHONETIC - 文字列の音声キーの取得

PHONETIC 関数は、文字列の音声キーを計算します。計算失敗時は NULL 値を返します。音声キーは、文字値に綴りのバリエーションがある場合に (例、氏名)、これらの文字値をグループ化する際に役立ちます。このグループ化は、発音に基づいて同一名のバリエーションに同一のインデックス番号を生成する方法で行われます。インデックスの生成には、2 つの音声アルゴリズム (Metaphone と Soundex) のいずれかを使用することができます。デフォルトのアルゴリズムは Metaphone です。

このアルゴリズムで、次のコマンドを使用するよう設定することができます。

SET PHONETIC_ALGORITHM = {METAPHONE|SOUNDEX}

ほとんどの音声アルゴリズムは、英語の発音に基づいて開発されました。そのため、別の言語の単語にルールを適用すると、意味のない結果が得られる場合があります。

Metaphone は、名前に使用する以外に、ほとんどの英単語に適しています。Metaphone アルゴリズムは、よく使用される多くのスペルチェッカーの基礎になっています。

注意:Metaphone は、生成された SQL では最適化されません。そのため、SQL DBMS のリクエストを最適化する必要がある場合は、SOUNDEX 設定を使用する必要があります。

Soundex は、英語発音の音声に基づいて名前をインデックス化する、従来の音声アルゴリズムです。

音声キーの取得

PHONETIC(string)

説明

string

文字

キーを作成する文字列です。失敗時には NULL 値が返されます。

音声キーの生成

次のリクエストは、「MARY SMITH」の姓の綴りを「SMYTHE」に変更し、それぞれの姓の音声キーを生成します。

DEFINE FILE EMPLOYEE
LAST_NAME2/A16 = IF LAST_NAME EQ 'SMITH' AND FIRST_NAME EQ 'MARY' THEN 'SMYTHE' ELSE LAST_NAME;
PKEY/A10 = PHONETIC(LAST_NAME2);
END
TABLE FILE EMPLOYEE
PRINT FIRST_NAME LAST_NAME2 
BY PKEY
ON TABLE SET PAGE NOLEAD
ON TABLE SET STYLE *
GRID=OFF,$
ENDSTYLE
END

下図は、出力結果を示しています。「SMITH」の 2 つの綴り (元の綴りと変更後の綴り) には、同一のインデックス番号が割り当てられます。