wo","wor","ord"}で、類似度は0.8となります。この関数が返す値は、最初の文字列と、二番目の文字列の部分文字列の間の最大の類似度を表す値であると、概ね解釈できます。この関数は範囲の境界に対してパディングを行いません。一致しない語の境界を除くと、二番目の文字列中に存在する追加文字数は考慮されません。text)は二番目の文字列の単語の範囲を選択します。text)は単語の並びの一部の類似度を求めるのにより適しています。2つの引数がpg_trgm.similarity_thresholdで設定された類似度閾値以上の類似度を持つ場合trueを返します。最初の引数中のトライグラムの集合と、二番目の引数中の順序付きトライグラム集合の中の範囲の類似度が、pg_trgm.word_similarity_threshold引数で設定した現在の語類似度の閾値よりも高い場合にtrueを返します。<%演算子の交代演算子です。二番目の引数が単語の境界と一致する順序付きトライグラム集合の連続した範囲を持っていて、かつ、最初の引数のトライグラム集合に対する類似度がpg_trgm.strict_word_similarity_thresholdで設定される現在の厳密な単語類似度の閾値より大きい場合、trueを返します。<<%演算子の交代演算子です。similarity()の値を返します。word_similarity()の値を返します。<<->演算子の交代演算子です。strict_word_similarity()の値を返します。<<<->演算子の交代演算子です。(real)%演算子が使用する現在の類似度閾値を設定します。閾値は0から1の間でなければなりません。(real)<%と%>%演算子が使用する現在の語類似度閾値を設定します。閾値は0から1の間でなければなりません。(real)<%と%>%演算子が使用する現在の厳密な語類似度閾値を設定します。閾値は0から1の間でなければなりません。インデックスサポートpg_trgmモジュールは、テキスト列全体に非常に高速な類似度検索を行うためのインデックスを作成することができるように、GiSTおよびGINインデックス演算子クラスを提供します。これらのインデックス種類は上記類似度演算子をサポートし、さらにLIKE、ILIKE、~および~*問い合わせにおけるトライグラムを基にしたインデックス検索をサポートします。(これらのインデックスは等価性や単純な比較演算子をサポートしません。通常のB-treeインデックスも必要になるかもしれません。gin_trgm_ops);この段階で、テキスト列tに類似度検索で使用可能なインデックスがあります。典型的な問い合わせを以下に示します。t;これは、wordに十分似たテキスト列の値をすべて、類似度の高い順番に返します。インデックスは非常に大規模なデータ群に対する高速操作を行うために使用されます。以下は上の問い合わせを変形させたものです。10;これはGINインデックスではなくGiSTインデックスにより非常に効率的に実装することができます。通常、類似度が高いものの中から少ない個数のみを必要とする場合、1番目の式よりも効率的です。単語の類似度あるいは厳密な単語の類似度に対してt列のインデックスを使うことができます。これは、wordのトライグラム集合に十分似ている順序付きトライグラム集合に対応する連続した領域が存在するテキスト列中のすべての値を返します。結果は、最も似ているものから、最も似ていないものへの順にソートされます。インデックスは、非常に大きなデータ集合に対しても高速な操作ができるようにするために使われます。いくつか例を示します。10;これはGINインデックスではなく、GiSTインデックスによって極めて効率的に実装できます。9.1から、これらのインデックス種類はLIKEおよびILIKEにおけるインデックス検索をサポートします。'%foo%bar';インデックス検索は、検索文字列からトライグラムを抽出し、それらをインデックスから検索することによって動作します。検索文字列内のトライグラムが多ければ、よりインデックス検索が効率的になります。B-treeを基にした検索とは異なり、検索文字列の左側が固定されている必要はありません。9.3から、これらの種類のインデックスは正規表現一致(~および~*演算子)に対するインデックス検索もサポートします。'(foo|bar)';インデックス検索は、正規表現からトライグラムを抽出し、それらをインデックスから検索することで動作します。多くのトライグラムが正規表現から抽出される場合、インデックス検索はより効率的になります。B-treeを基にした検索と異なり、検索文字列は先頭一致である必要はありません。LIKEおよび正規表現検索の両方で、トライグラムが抽出されないパターンでは完全インデックススキャンより性能が落ちることに注意してください。GiSTまたはGINインデックスの選択は、他で説明されるGiSTとGINの相対的な性能特性に依存します。これについては、別途議論されています。テキスト検索の統合トライグラム一致は全文テキストインデックスと一緒に使用する時、非常に有用なツールです。全文検索機構では直接一致しない、ミススペルがある入力単語の認識を行うために役に立ちます。第一段階は文書内で一意な単語からなる補助テーブルを生成することです。documents');ここでdocumentsは、検索対象のbodytextテキストフィールドを持つテーブルです。言語固有の設定を使用するのではなく、to_tsvector関数でsimple設定を使用する理由は、元の(語幹抽出されていない)単語のリストが欲しいためです。次にword列にトライグラムインデックスを作成します。gin_trgm_ops);これで、上の例に似たSELECT問い合わせを使用して、ユーザの検索語内でミススペルのある単語を提示できるようになります。有用な追加された試験は、選択された単語の長さがミススペルのある単語の長さとほぼ同じになることを要求するものです。注記wordsテーブルは別に生成された静的なテーブルですので、文書群の更新に合理的に追従できるよう定期的に再生成する必要があります。正確に最新状態を維持する必要性は通常ありません。Ltd.による後援です。pg_visibility。