全文検索の概要

ドキュメントのバージョンを選択してください。

全文検索(FTS)を使用すると、クエリを満たす自然言語ドキュメントを特定できます。このアプローチは、一般的な単語(「the」など)を無視したり、「run」、「running」、「ran」などの単語の異なる形式を照合したりするなど、言語のニュアンスを考慮するため、標準の文字列照合よりも効果的です。

AlloyDB Omni は、GIN インデックスと GiST インデックスのサポートなど、すべての全文検索機能と機能をサポートしています。

全文検索(FTS)を効果的に実装するには、PostgreSQL がテキストを処理して検索する方法を理解する必要があります。検索単位であるドキュメントは、通常、テキスト列または行の列の組み合わせです。インデックス ビルドプロセスでは、このドキュメントを解析して、単語(または レクシーム、単語の基本形)を行に関連付けます。

このプロセスには、次の手順で未加工のテキストを検索可能な形式に変換する前処理パイプラインが含まれます。

  • テキストをトークンに分割します。
  • 一般的なストップワードを削除します。
  • 単語を語根形に正規化します。たとえば、「run」は「run」、「runs」、「running」、「ran」の語彙素です。

全文検索を使用するには、組み込みの PostgreSQL インデックスや高パフォーマンスの RUM インデックスなど、特殊なデータ型、演算子、さまざまなインデックス登録戦略についても学習する必要があります。

PostgreSQL は、2 つの主要なデータ型と一致演算子を使用して FTS を管理します。

  • tsvector: 検索可能な形式のドキュメント(重複のないレクシームのソート済みリスト)を表します。
  • tsquery: 検索キーワードを表します。これには、レクシームを組み合わせるためのブール演算子が含まれます。
  • @@: tsvectortsquery と一致するかどうかを確認し、言語認識検索を可能にします。

AlloyDB Omni は、組み込みの PostgreSQL がサポートするフルテキスト検索のすべてのインデックス タイプをサポートしています。インデックスの選択は、検索速度、インデックスのビルド時間、更新速度、必要な特定の検索機能(フレーズ検索や関連性ランキングなど)のバランスによって異なります。

AlloyDB Omni で RUM インデックスを作成して使用する方法の詳細については、RUM インデックスを作成して管理するをご覧ください。

最も強力な検索実装では、RUM インデックスとベクトル検索を使用した全文検索を組み合わせることがよくあります。ハイブリッド検索を使用して、セマンティック理解とキーワードのマッチタイプの強みを統合し、個別の結果セットを統合して包括的なランキングを作成します。

たとえば、e コマース アプリケーションでは、まず RUM を使用した全文検索で「ランニング シューズ」などの特定のキーワードを含む商品を見つけ、ベクトル検索を使用して「長距離トレーニング用の快適なフットウェア」などのユーザーのより詳細なクエリとの意味的類似性に基づいて結果を見つけることができます。次に、データベースは Reciprocal Rank Fusion(RRF)アルゴリズムを使用して、両方の検索コンポーネントのランク付けされた結果を 1 つの統合リストに統合し、最終的なランキングを生成します。

このハイブリッド アプローチの使用方法については、ハイブリッド ベクトル類似性検索を実行するをご覧ください。

次のステップ