検索の仕組み - 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 は で結果 CloudSearch を返しますJSON。

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

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

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

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

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

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

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

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