検索の仕組み - Amazon CloudSearch

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

検索の仕組み

検索するデータのコレクション (コーパスとも呼ばれる) は、構造化されていないフルテキストドキュメント、XML などのマークアップ言語で形式が設定されているドキュメントなどの半構造化ドキュメント、または厳密なデータモデルに準拠する構造化データで構成されている場合があります。検索できるようにする各項目 (フォーラムの投稿やウェブページなど) は、ドキュメントとして表されます。各ドキュメントには、一意の ID と、検索して結果に含めるデータが含まれるフィールドが 1 つ以上あります。

データを検索可能にするには、JSON や XML 形式のドキュメントのバッチとしてデータを表し、検索ドメインにバッチをアップロードします。 CloudSearch 次に、Amazon はドメインの設定オプションに従ってドキュメントデータから検索インデックスを生成します。このインデックスに対してクエリを送信し、特定の検索条件を満たすドキュメントを見つけます。

データが変更されたら、更新を送信して、インデックスのドキュメントを追加、変更、または削除します。更新は受信された順序で継続的に適用されます。

データの形式を設定する方法については、「データの準備」を参照してください。

Amazon でのインデックス作成 CloudSearch

データから検索インデックスを作成するには、Amazon に次の情報 CloudSearch が必要です。

  • どのドキュメントフィールドを検索する必要があるか。

  • どのドキュメントフィールドの値を検索結果で取得する必要があるか。

  • 検索結果を調整およびフィルタするために使用するカテゴリを表しているドキュメントフィールドはどれか。

  • 特定のフィールド内のテキストをどのように処理する必要があるか。

インデックス作成オプションを設定することにより、ドメインの設定でこのメタデータを定義します。インデックス作成オプションを使用して、検索インデックスに含まれるフィールドを指定し、これらのフィールドを使用する方法を制御します。

データで発生するドキュメントフィールドごとに、対応するインデックスフィールドを設定する必要があります。これは、ドキュメントフィールドと Amazon CloudSearch インデックスのフィールド間の one-to-one マッピングです。インデックスフィールド名に加えて、以下の項目を指定します。

  • インデックスフィールドの型

  • フィールドが検索可能かどうか (text および text-array フィールドは常に検索可能です)

  • フィールドがカテゴリ (ファセット) として使用できるかどうか

  • フィールド値を検索結果で返すことができるかどうか

  • フィールドを使用して結果をソートできるかどうか

  • フィールドにハイライトを返すことができるか

  • ドキュメントデータで値が指定されていない場合に使用するデフォルト値

Amazon のインデックスフィールドを設定する方法については CloudSearch、「」を参照してくださいconfigure indexing options

Amazon のファセット CloudSearch

ファセットとは、検索結果の絞り込みとフィルタ処理を行うために使用するカテゴリを表すインデックスフィールドです。Amazon に検索リクエストを送信すると CloudSearch、ファセット情報をリクエストして、ファセット内の同じ値を共有するヒット数を調べることができます。この情報を検索結果と共に表示して、ユーザーはそれを利用して対話的に検索結果を絞り込むことができます。(これは多くの場合、ファセットナビゲーションまたはファセット検索と呼ばれます)。

ファセットには、ドメイン設定でファセットが有効になっている日付、リテラル、または数値フィールドを指定できます。Amazon は、ファセットごとに、同じ値を共有するヒットの数を CloudSearch 計算します。バケットを定義して、ファセット値の特定のサブセットのファセット数を計算できます。一致するバケットのみがファセット結果に含まれます。

ファセットの設定については、「configure indexing options」を参照してください。ファセット情報を使用してファセットナビゲーションをサポートする方法については、「Amazon CloudSearch でファセット情報を取得して使用」を参照してください。

Amazon でのテキスト処理 CloudSearch

インデックス作成中、Amazon は、 text-array フィールドに設定されている言語固有の分析スキームに従って、 フィールドtextと フィールドの内容 CloudSearch を処理します。分析スキームによって、テキストの正規化、トークン分割、およびステミングの方法を制御し、インデックス作成時に考慮するストップワードやシノニムを指定します。Amazon CloudSearch では、サポートされている言語ごとにデフォルトの分析スキームが用意されています。カスタム分析スキームの設定については、「分析スキームの設定」を参照してください。Amazon CloudSearch がテキストを正規化およびトークン分割し、テキストフィールドのインデックス作成や検索リクエストの処理時に設定されたテキストオプションを適用する方法については、「」を参照してくださいAmazon CloudSearch でのテキスト処理

Amazon での結果のソート CloudSearch

検索条件に一致する各ドキュメントについてカスタム値を計算する式を定義することにより、検索結果をランク付けする方法をカスタマイズできます。例えば、ドキュメントの popularityフィールドの値と Amazon CloudSearch Expressions によって計算されるデフォルトの関連性スコアを考慮した式を定義できます。これは、標準の数値演算子と関数を使用する単なる数値式です。式では、int フィールドや double フィールド、他の式、ドキュメントの関連性スコア (_score)、およびエポック時間 (_time) を参照できます。検索リクエストを送信するときに、検索結果のソートに使用する式を指定します。検索条件内で式を参照することもできます。

ドキュメントの関連性 _score は、特定の検索ヒットが検索リクエストに対してどれくらい関連しているかを示します。関連性スコアを計算するために、Amazon CloudSearch では、インデックス内の他のドキュメントと比較してドキュメントに検索用語が出現する回数を考慮します。

ドメインで使用する式を設定する方法については、「式の設定」を参照してください。

Amazon での検索リクエスト CloudSearch

HTTP/HTTPS の GET リクエストとして、ドメインの検索エンドポイントに検索リクエストを送信します。さまざまなオプションを指定することによって、検索の制約、ファセット情報のリクエスト、ランク付けの制御、結果で返される内容の指定を行うことができます。JSON 形式または XML 形式で検索結果を取得できます。デフォルトでは、Amazon は JSON で結果 CloudSearch を返します。

検索リクエストを送信すると、Amazon は検索文字列に対してテキスト処理 CloudSearch を実行します。検索文字列は、以下の目的で処理されます。

  • すべての文字を小文字に変換する

  • 空白および句読点の境界で、文字列を個別の用語に分割する

  • 検索対象のフィールドについて、ストップワードリストにある用語を削除する

  • 検索対象のフィールドについて設定されたステミングおよびシノニムのオプションに従って、ステミングとシノニムをマッピングする

この前処理が完了すると、Amazon はインデックス内の検索用語 CloudSearch を検索し、リクエストに一致するすべてのドキュメントを識別します。レスポンスを生成するために、Amazon はこの検索ヒットのリスト CloudSearch を処理して、一致するドキュメントをフィルタリングおよびソートし、ファセットを計算します。 CloudSearch その後、Amazon は JSON または XML でレスポンスを返します。

デフォルトでは、Amazon はヒットの関連性 _scores に従ってランク付けされた検索結果 CloudSearch を返します。また、リクエストで、ヒットをソートするために使用するインデックスフィールドまたは式を指定できます。例えば、料金を含んでいるインデックスフィールドや、人気を計算する式によって、ヒットをソートできます。

結果の検索、ランク付け、およびページ分割の詳細については、「Amazon でのデータの検索 CloudSearch」を参照してください。