全文検索の仕組み

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

インデックス登録

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

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

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

検索

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

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

全文検索の方法

全文検索にはさまざまなアプローチがあり、それぞれに独自の機能があります。そのため、ニーズによって最適なアプローチが異なります。一般的な手段は次のとおりです。

基本的な検索

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

基本検索は簡単で、単純な検索シナリオに適しており、通常はコンピューティング能力をあまり必要としませんが、特に一般的なキーワードでは、無関係な結果が多数返されることがあります。

ファジー検索

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

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

近接検索

近接検索では、ユーザーがキーワード間の近接性を指定できます。たとえば、「cat NEAR dog」を検索すると、「cat」と「dog」という単語が近くに現れるドキュメントが返されます。

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

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

次のステップ

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

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