Amazon CloudSearch ドメインのインデックスフィールドの設定 - Amazon CloudSearch

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

Amazon CloudSearch ドメインのインデックスフィールドの設定

検索ドメインに追加する各ドキュメントには、検索または取得できるデータを含むフィールドのコレクションがあります。各ドキュメントには、一意のドキュメント ID が割り当てられ、少なくとも 1 つのフィールドがある必要があります。

ドメインの設定では、ドキュメントに含まれるフィールドごとにインデックスフィールドを定義します。認識されないフィールドを含むドキュメントをアップロードすることはできません。ただし、あらゆるドキュメントがすべてのフィールドを含む必要はありません。ドキュメントはドメイン用に設定されたフィールドのサブセットを含むことができます。

Amazon では、次のインデックスフィールドタイプ CloudSearch がサポートされています。

  • date — タイムスタンプが含まれます。日付と時刻は、IETF RFC3339: yyyy-mm-ddTHH:mm:ss.SSSZ に従って、UTC (協定世界時) で指定されます。UTC 形式で、例えば、1970 年 8 月 23 日午後 5 時は、1970-08-23T17:00:00Z となります。UTC で時刻を指定する場合は、小数秒を指定することもできます。例えば、1967-01-31T23:20:50.650Z. です 。

  • date-array — 複数の値を含むことができる date 型フィールド。

  • double — 倍精度 64 ビット浮動小数点値が含まれます。

  • double-array — 複数の値を含むことができる double 型フィールド。

  • int — 64 ビット符号付き整数値が含まれます。

  • int-array — 複数の値を含むことができる int 型フィールド。

  • latlon — 緯度と経度の値のペア (lat, lon) で位置を格納します。

  • literal — 正確な一致を可能にする識別子またはその他のデータが含まれます。リテラルフィールドでは、大文字と小文字が区別されます。

  • literal-array — 複数の値を含むことができる literal 型フィールド。

  • text — 任意の英数字データが含まれます。

  • text-array — 複数の値を含むことができる text 型フィールド。

通常のインデックスフィールド名は、3 文字以上、64 文字以内で、先頭は英字にする必要があります。使用できる文字は、a​~​z (小文字)、0~​9、_ (下線) です。score という名前は予約済みのため、フィールド名として指定できません。すべてのフィールド名と式名は一意である必要があります。

動的フィールド名はワイルドカード (*) で始まるか終わる必要があります。ワイルドカードの前後の文字列には、通常のインデックスフィールドと同じ文字セットを含めることができます。動的フィールドの詳細については、「Amazon CloudSearch での動的フィールドの使用」を参照してください。

フィールドで設定できるオプションは、フィールドの型に応じて異なります。

  • HighlightEnabled — すべての HighlightEnabled テキストフィールドの検索ヒットについて、ハイライト情報を取得できます。有効な対象: texttext-array

  • FacetEnabled — すべての FacetEnabled フィールドのファセット情報を取得できます。テキストフィールドはファセットに使用することができません。有効な対象: intint-arraydatedate-arraydoubledouble-arraylatlonliteralliteral-array

  • ReturnEnabled — 検索結果を使用して、すべての ReturnEnabled フィールドの値を取得できます。これによって、インデックスのサイズが増加し、ドメインを実行するコストが増加する場合があることに注意してください。可能であれば、インデックスに埋め込むのではなく、外部ソースから大量のデータを取得することをお勧めします。ドメイン間でドキュメントの更新を適用するには時間がかかる可能性があるため、価格情報などの重要なデータは、返されたドキュメント ID を使用して外部ソースから取得する必要があります。有効な対象: intint-arraydatedate-arraydoubledouble-arraylatlonliteralliteral-arraytexttext-array

  • SearchEnabled — すべての SearchEnabled フィールドの内容を検索できます。テキストフィールドは、常に検索可能です。有効な対象: intint-arraydatedate-arraydoubledouble-arraylatlonliteralliteral-arraytexttext-array

  • SortEnabled — 任意の SortEnabled フィールドを使用して検索結果をアルファベット順または数値順にソートできます。配列型フィールドを SortEnabled にすることはできません。ソートが有効になっている数値フィールドのみ式で使用できます。有効な対象: intdatelatlondoubleliteraltext

任意のフィールドのデフォルト値とソースを指定することもできます。式で数値フィールドを使用しており、すべてのドキュメントにそのフィールドが存在しているとは限らない場合、デフォルト値の指定が重要になる可能性があります。ソースを指定すると、あるフィールドから別のフィールドにデータがコピーされるため、フィールドに異なるオプションを設定することにより、同じソースデータを複数の方法で使用できます。ワイルドカード (*) を使用してソース名を指定することで、指定されたパターンに一致するすべてのフィールドのデータをコピーできます。

フィールドを追加したり、既存のフィールドを変更したりするときは、構成の変更が完了したら、データの再インデックス作成のリクエストを明示的に発行する必要があります。詳細については、「rebuild the index」を参照してください。

重要

フィールドタイプを変更して、新しいフィールドタイプと互換性のないデータを含むインデックスにドキュメントがある場合、インデックス作成を実行してインデックスオペレーションが失敗すると、処理されるすべてのフィールドは FailedToValidate 状態になります。互換性のない設定の変更をロールバックすると、インデックスを再構築できるようになります。変更が必要な場合、互換性のないドキュメントを更新するか、インデックスから削除し、新しい設定を使用する必要があります。

AWS CLI を使用した個々のインデックスフィールドの設定

検索ドメイン用に個々のインデックスフィールドを設定するには、aws cloudsearch define-index-field コマンドを使用します。AWS CLI のインストールおよびセットアップの詳細については、「AWS Command Line Interface ユーザーガイド」を参照してください。

インデックスフィールドをドメインに追加するには
  • aws cloudsearch define-index-field コマンドを実行して、--name オプションで新しいフィールド名を指定し、--type オプションでフィールド型を指定します。以下の例は、movies ドメインに year という int フィールドを追加します。

    aws cloudsearch define-index-field --domain-name movies --name year --type int { "IndexField": { "Status": { "PendingDeletion": false, "State": "RequiresIndexDocuments", "CreationDate": "2014-06-25T23:03:06Z", "UpdateVersion": 15, "UpdateDate": "2014-06-25T23:03:06Z" }, "Options": { "IndexFieldType": "int", "IndexFieldName": "year" } } }
注記

フィールドを追加したり、既存のフィールドを変更したりするときは、構成の変更が完了したら、データの再インデックス作成のリクエストを明示的に発行する必要があります。詳細については、「rebuild the index」を参照してください。

Amazon CloudSearch コンソールを使用したインデックスフィールドの設定

Amazon CloudSearch コンソールのインデックス作成オプションパネルからドメインconfigure individual index fieldsを簡単に表示できます。コンソールでインデックスフィールドを設定するには、AWS CLI ではサポートされていない DefineIndexFields アクションが必要になります。

Amazon CloudSearch コンソールを使用した個々のフィールドの設定

新しいインデックスフィールドを設定するには
  1. https://console.aws.amazon.com/cloudsearch/home で Amazon CloudSearch コンソールを開きます。

  2. 左側のナビゲーションペインで [Domains] (ドメイン) を選択します。

  3. 設定するドメイン名をクリックし、[インデックスオプション] タブに移動します。

  4. リストにフィールドの仕様を追加するには、[新しいインデックスフィールド] を選択します。

  5. フィールドの一意の名前を指定し、フィールドの型を選択します。フィールド名は、3 文字以上、64 文字以内で、先頭は英字にする必要があります。使用できる文字は、a​~​z (小文字)、0~​9、_ (下線) です。score という名前は予約済みのため、フィールド名として使用できません。

  6. フィールドで有効化するクエリの詳細を選択します。詳細については、「configure indexing options」を参照してください。

  7. 各テキストフィールドで使用する分析スキームを選択します。分析スキームは、インデックス作成中に使用される言語固有のテキスト処理オプションを指定します。デフォルトでは、テキストフィールドで _en_default_ 分析スキームが使用されます。詳細については、「分析スキームの設定」を参照してください。

  8. フィールドのデフォルト値を指定します (オプション)。この値は、ドキュメントデータでフィールドの値が指定されていない場合に使用されます。

  9. オプションで、[ソースフィールド] にフィールドを追加します。

  10. [送信] を選択します。

注記

フィールドを追加したり、既存のフィールドを変更したりするときは、構成の変更が完了したら、データの再インデックス作成のリクエストを明示的に発行する必要があります。詳細については、「rebuild the index」を参照してください。

AWS SDKs を使用した Amazon CloudSearch インデックスフィールドの設定

AWS SDKs (Android および iOS SDKs) は、 を含む Amazon CloudSearch Configuration API で定義されているすべての Amazon CloudSearch アクションをサポートしますDefineIndexField。AWS SDK のインストールと使用の詳細については、「AWS Software Development Kits」(AWS ソフトウェアデベロップメントキット) を参照してください。