全文検索の仕組み

全文検索には、2 つの主要な段階があります。インデックス処理は、ライブラリの地図を作成するようなものであり、検索は、その地図からリクエストされた情報を取得するものです。

インデックス登録

インデックス作成の段階では、システムがドキュメントのテキスト コンテンツを分析し、データを構造化された形式で保存します。このプロセスでは通常、次のような作業を行います。

  • トークン化: テキストをトークンと呼ばれる個々の単語または単位に分割します。これは、文を個々の単語に分割するのと同じです。
  • ステミング: 「running」を「run」に短縮するなど、単語を語幹に短縮すること。これにより、同じ単語のバリエーションが検索時に単一の語として扱われます。
  • ストップワードの除去: 「the」、「a」、「is」など、検索において特に意味のない一般的な単語を除去します。これにより、インデックス サイズが小さくなり、検索速度が向上します。
  • インデックスの構築: ドキュメント内のキーワードの位置にマッピングするデータ構造を作成します。このインデックスは、検索エンジンが関連ドキュメントをすばやく見つけられるようにするためのロードマップとして機能します。

インデックス処理のプロセスは、全文検索システムのパフォーマンスにとって非常に重要です。構造化されたインデックスにより、大規模なデータセット内でも、関連するドキュメントを迅速かつ効率的に取得できます。

検索中

インデックスが構築されると、検索段階でユーザーが検索語句を送信して関連する結果を取得できるようになります。システムは検索語句を分析し、インデックスを使用して関連するキーワードを含むドキュメントを特定します。

検索時に、システムは完全一致キーワードだけを探すわけではありません。また、結果の関連性を高めるためにさまざまな手法も採用しています。たとえば、ドキュメント内のキーワードの近接度や、その検索語句に関連するコンテンツの関連性を考慮します。

全文検索の方法

全文検索にはさまざまなアプローチがあり、それぞれに独自の特徴があるため、ニーズに応じて最適なアプローチを選択できます。一般的な手段は次のとおりです。

基本的な検索

このシンプルな検索方法では、ドキュメント内のキーワードの順序や近接性に関わらず、キーワードが一致します。たとえば、「cat」と「dog」を検索すると、どちらかの単語を含むドキュメントが返されます。

基本的な検索は単純で、シンプルな検索シナリオに適しています。通常は計算能力をあまり必要としませんが、キーワードが一般的なものである場合は、関連性のない結果が大量に返されることがあります。

ファジー検索

ファジー検索は、スペルミスやタイプミスなどのバリエーションを許容する、より柔軟な方法です。単語の類似性などの要素を考慮し、「cat」や「cats」のようにわずかに異なる単語を含むドキュメントをユーザーが見つけられるようにします。

ユーザーが「programing」のヒントを議論するフォーラムを想像してみてください。このような誤字やスペルミスがあるため、標準的な検索では「programming」という単語が含まれるフォーラム コンテンツが見つからないことがあります。しかし、ファジー検索では「programing」が類似パターンとして認識されるため、関連性の高いコンテンツが検索結果に含まれます。

近接検索

近接検索では、キーワード間の近接度を指定できます。たとえば、「cat NEAR dog」で検索すると、「cat」と「dog」という単語が互いに近い位置に表示されているドキュメントが返されます。

データとコンテンツの過去のアーカイブを扱っているとします。全文検索で近接検索方法を使用することで、検索者が特定の関係性に関するドキュメントをより迅速に見つけられるようにアプリケーションを構成できます。検索語句が「Abraham Lincoln /3 Mary Todd」の場合、「Abraham Lincoln」と「Mary Todd」が近い位置に表示されているドキュメントを優先します。これにより、個々の人物について言及した別々のドキュメントを表示するのではなく、返される結果にその人物らの関係に関する情報が含まれる可能性が高くなります。

この方法は、検索語句間の関連性が重要なドキュメントを見つけるのに特に便利です。

次のステップ

$300 分の無料クレジットと 20 以上の Always Free プロダクトを活用して、Google Cloud で構築を開始しましょう。

  • Google Cloud プロダクト
  • 100 種類を超えるプロダクトをご用意しています。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。また、すべてのお客様に 25 以上のプロダクトを無料でご利用いただけます(毎月の使用量上限があります)。
Google Cloud