ドキュメント検索は、主に構造化されていないフリーテキスト (ドキュメントだけではありません) に対して機能する検索です。ウェブページを検索する場合も、製品を探す場合も、キュレートされたコンテンツを扱う場合も、検索エンジンを使ってそれを行います。ウェブページを訪れ、「検索」テキストボックスに文字を入力します。「検索」をクリックすると、お客様の情報目標を満たす関連項目が (うまくいけば) 表示されます。

検索エンジンはデータベース技術から発展したもので、データを保存し、そのデータに対するクエリを処理するものです。従来のデータベースは、主に構造化されたコンテンツを扱います。データは、スキーマが組み込まれたテーブルとカラムに整理されています。データベースの仕事は、カラムの値にマッチするクエリに基づいて、すべてのデータ行を取得することです。検索エンジンは、メタデータと大量の非構造化テキスト (フリーテキスト) の両方を含む構造化データ (ドキュメント) を扱います。検索エンジンは、言語規則を用いて、これらの大きなテキストブロックをマッチする用語に分解します。また、検索エンジンにはランキング機能が組み込まれており、検索結果を順番に並べ、最も良いものを上位に表示します。リレーショナルデータベースや NoSQL データベースがすべての結果を取得するのに対し、検索エンジンは最良の結果を取得します。

検索エンジンの用途は大きく 3 つに分けられます。ドキュメント検索は主に非構造化フリーテキストに対して機能し、e コマース検索は構造化データと非構造化データの両方に対して機能し、クエリオフローディングは主に構造化データに対して機能します。

ドキュメント検索はメタデータを扱うのですか?

ドキュメント検索では、段落のような小さなものから数千ページに及ぶものまであるメインドキュメントを検索します。ドキュメントには、非構造化テキストフィールド (タイトル要約)、半構造化フィールド (著者)、構造化フィールド (発行日、発行グループ、カテゴリ)、つまりメタデータなど、さまざまなフィールドが含まれています。検索エンジンは、ユーザーからの問い合わせ内のテキストとメタデータを混在させて処理します。

ドキュメント検索の主な課題は、データの準備と取得、そして検索の関連性という 2 つの領域に分類されます。

ドキュメント検索のユースケースでは、ドキュメント本体 (コーパス) は、ユーザーが作成したコンテンツやその他のまだキュレートされていないコンテンツに由来しています。このようなコンテンツには通常、タイプミスやその他のエラー、繰り返し、無意味なデータなどが含まれています。このようなデータを検索エンジンにロードする前に、データをキュレートし、クレンジングし、正規化する必要があります。データを準備した後、そのデータをエンジンにロードする必要があります (取得 API を呼び出すことで) 。最後に、ドキュメントが変更されたときに更新するプロセスが必要です。

ドキュメント検索の中核的な価値は、ユーザーのクエリに関連するドキュメントを検索すること、つまり検索関連性です。取得中、検索エンジンは統計的尺度 (BM25) により、マッチするすべてのドキュメントをスコアリングし、ソートします。BM25 は、検索語のユニークさと、マッチしたドキュメントに含まれる数を掛け合わせたものです。クエリがより多くのユニークな用語にマッチする回数が多ければ多いほど、スコアは高くなります。特定のデータセットに合わせてスコアリング関数を調整する必要があります。機械学習 (ML) 技術はランキングを向上させるのに役立ちます。検索は、取得されたドキュメントの関連性が高ければ高いほどよいので、最高のものを求めることになります。

検索のユースケースには他にどのようなものがありますか?

e コマース検索 

お客様は、e コマースエンジンにアクセスし、利用可能な製品のカタログから製品を探して購入します。これらの商品は、サイズ、色、ブランドなどの多くのメタデータフィールドと、タイトル、商品説明レビューなどの長いフィールドで構成されています。 エンジンの主な仕事は、最も関連性の高い結果を取得することであり、それによって収益がもたらされます。サイトの設計者は、埋め込み型の数値やユーザーの行動に基づいた機械学習モデルなど、多くのツールを使って優れた関連性機能を構築しています。

エンドユーザーエクスペリエンスを向上させるために、e コマースサイトは頻繁にファセット検索を追加しています。エンジンは、さまざまなフィールド (サイズ、色など) の値をバケット数で提供し、UI はユーザーが結果を絞り込むために使用するクリック可能なリストを提供します。

e コマースの検索には、個別化とレコメンデーションに大きく依存するタイプがあります。例えば、「ドレス」と検索した場合、検索エンジンはそのお客様が興味を持ちそうなドレスを探し出すはずですが、このクエリ自体は非常に自由なものです。k-nearest-neighbor (k-NN) のような類似性のメトリクスは、その助けとなります。

キュレートされたデータセットの検索

エンタープライズのドキュメントリポジトリ (臨床試験データ、法的概要、不動産など) のような、キュレートされたデータセットの検索です。検索エンジンは、言語規則やその他の言語固有の機能を備えており、大量のテキストブロックを構成語 (フィールドや大量のテキストブロックの単語) に分解してマッチングするのに役立ちます。その豊富なクエリ言語によって、「ノースリーブのロングドレス」のように、これらの大きなテキストブロックの用語の組み合わせを検索することができます。しかし、このエンジンはマッチするものをすべて取得するわけではありません。関連性スコアリングによってドキュメントをランク付けし、ソートして、最もマッチするものだけを返します。

クエリのオフロード

検索エンジンは、大量かつ低レイテンシーの検索を可能にするために、特別なデータ構造を備えています。これらの構造の中で最も重要なのは転置インデックスであり、個々の用語をその用語を含むドキュメントのリストに対応付けます。このようなデータ構造により、検索エンジンはリレーショナルデータベースよりも優れたクエリ処理を行うことができます。その代わり、検索エンジンはリレーショナルデータではありません。リレーショナルデータベースと検索エンジンのタンデム型はよく見かけます。アプリケーションデータを提供するためにリレーショナルデータベースを使用し、そのデータに対する低レイテンシーで関連性のある検索を提供するために検索エンジンを使用します。

リッチで楽しい検索体験を構築するには、多くのジョブ機能が必要です。デベロッパーは検索ソリューションを統合し、検索インターフェイスを作成し、最良の検索結果を得るためにどのようにデータを構成するかを理解します。プロダクトマネージャーは、メタデータの構造や検索インターフェイスのユーザーエクスペリエンスに関する要件を提供します。データサイエンティストは、ソースデータをキュレートし、ユーザーの行動を追跡して作業を行います。経営陣は、エンジンのビジネス目標を達成するために、製品チームと開発チームのガイドとなるビジネス KPI を設定します。

検索エンジンは、用語をマッチングするために最適化されています。「8 フィートソファ」と検索すると、8 フィートソファの結果が得られるはずです。これは、「8」、「フィート」、「ソファ」をマッチさせることによって実現されています。これがキーワード検索です。多くの場合、検索者は自分が探している正確な用語を知らないので、意味によって検索したいのです。これがセマンティック検索であり、検索技術と機械学習技術の最前線です。セマンティック検索では、「comfy place to sit by the fire」のようなクエリで、8 フィートのソファのようなアイテムを取得することができます。

セマンティック検索には、機械学習技術が必要です。項目とクエリのベクトル空間を構築し、ベクトルの類似性計算を使用してその空間内で近いものを見つける必要があります。ベクトル検索では、ドキュメントはクエリと共通の単語や同義語がなくても関連性があるとみなされます。例えば、「bicycle maintenance」で検索すると、「deraailleur lubrication」のドキュメントがマッチします。なぜなら、機械学習アルゴリズムは、「deraailleur lubrication」が自転車のメンテナンスの議論によく登場すると知っているからです。

より優れた検索結果を得るために、どのようなことを行っていますか?

効果的なドキュメント検索と e コマース検索の鍵となるのは関連性です。すなわち、検索結果が検索者のニーズに合っているかが重要です。 検索エンジンは、さまざまな手法で最良の結果を上位に表示しようとします。これを関連性ランキングと呼びます。データベースはマッチするものをすべて返し、検索エンジンは関連性の高い項目をスコアリングするために最適化されています。

  • 検索は、複数のフィールドにまたがって、差のある重み付けをすることができます。たとえば、映画のデータベースを検索する場合、タイトル、監督俳優などのフィールドにまたがり、タイトルにマッチするものは俳優にマッチするものより比重を高くすることができます。
  • 検索結果の鮮度を調整することを検討します。インデックスにリリース日のフィールドを追加し、その日付に基づく指数関数的な減衰をスコア関数に追加します。
  • 検索結果にファセットやフィルターを追加して、ユーザーが特定の要素を掘り下げていけるようにすることを検討します。多くのドキュメント検索システムは、メタデータのファセット (通常は検索結果ページの左側にカテゴリとして表示されます) をサポートしています。
  • 同義語の追加を検討します。同義語は、エンドユーザーが探している結果を見つけるのに役立ちます。衣料品でいえば、「tee」は「T-shirt」または「teeshirt」です。エンドユーザーが「tee」と検索しても「t-shirt」と検索しても、同じ結果が得られるはずです。同義語を追加することで、このような結果を返すことができます。

ドキュメント検索は、さまざまな用途に利用されています。

  • e コマースサイトでは、ユーザーが購入したい商品を取得するためにドキュメント検索を使用します。
  • 写真サイトでは、タイトル説明文などのメタデータ、あるいはマッチする画像ベクターに基づいて写真を検索するために、ドキュメント検索を使用しています。
  • 法律関係のユーザーは、関連する判例を見つけるためにドキュメント検索を使用します。
  • 医師は、患者の症状に合った薬を探すためにドキュメント検索を利用します。
  • カスタマーリレーションシップマネジメント (CRM) ソリューションでは、メモ、やり取り、対象となるお客様を取得するためにドキュメント検索を使用します。

何かを見つける必要があるときは、検索エンジンを使います。

  • Amazon OpenSearch Service は、検索ソリューションを構築したいデベロッパー向けのツールキットです。
  • Amazon Kendra は、インテリジェント検索のための、すぐに使えるソリューションです。
  • Amazon CloudSearch は、シンプルな検索のためのものです。

AWS ドキュメント検索の次のステップ

追加の製品関連リソースを確認する
クラウドの分析サービスの無料オファーを見る 
無料のアカウントにサインアップ

AWS 無料利用枠にすぐにアクセスできます。 

サインアップ 
コンソールで構築を開始する

AWS マネジメントコンソールで構築を始めましょう。

サインイン