fuzzystrmatchfuzzystrmatchモジュールは、文字列間の類似度や相違度を決める複数の関数を提供します。現時点で、soundex、metaphone、dmetaphone、dmetaphone_altは(UTF-8のような)マルチバイト符号化方式では充分に動作しません。このモジュールは「trusted」と見なされます。現在のデータベースに対してCREATE権限を持つ非スーパーユーザがインストールできます。SoundexSoundexシステムは、同一コードに変換することで似ているように見える名称を一致させる手法です。これは、1880年、1900年、1910年の米国国勢調査で初めて使用されました。Soundexは非英語圏の名称では特に有用なものではないことに注意してください。fuzzystrmatchはSoundexコードを使用して動作する2つの関数を提供します。intsoundex関数は文字列をSoundexコードに変換します。difference関数は2つの文字列をそのSoundexコードに変換し、コード位置が一致する個数を報告します。Soundexコードは4文字からなりますので、結果は0から4までの範囲になります。0はまったく一致しないことを、4は完全に一致することを示します。(したがってこの関数の名前は間違っています。similarityの方がより優れた名前だったかもしれません。)以下に使用例をいくつか示します。レーベンシュタインこの関数は2つの文字列間のレーベンシュタイン距離を計算します。intsourceおよびtargetは255文字までの任意の非NULL文字列を取ることができます。コストパラメータはそれぞれ、文字の挿入、削除、置換に負わせる文字数を指定します。この関数の2番目のバージョンのようにコストパラメータを省略することができます。この場合デフォルトですべて1になります。levenshtein_less_equalは小さな距離だけを問題にする場合についてのlevenshtein関数の高速化版です。実際の距離がmax_d以下の場合、levenshtein_less_equalは正しい値を返しますが、そうでなければ、max_dより大きい何らかの値を返します。max_dが負の場合は、levenshteinと同じ動作になります。MetaphoneMetaphoneは、Soundex同様、入力文字に対する対応するコードを構築するという考えに基づいたものです。2つの文字列が同一コードを持つ場合、類似とみなされます。以下の関数は入力文字列に対するmetaphoneコードを計算します。textsourceは255文字までの非NULL文字列を取ることができます。max_output_lengthは出力metaphoneコードの最大長を設定します。出力は長すぎるとこの長さに切り詰められます。Metaphoneシステムは与えられた入力文字列に対する、「primary」と「alternate」という2つの「似たように見える」文字列を計算します。ほとんどの場合、これらは同じですが、英語以外の名称では特に発音に応じて多少異なる場合があります。以下の関数はprimaryコードとalternateコードを計算します。text入力文字列長に関する制限はありません。