カスタムドキュメントフィールドの作成 - Amazon Kendra

カスタムドキュメントフィールドの作成

注記

機能のサポートは、使用されているインデックスタイプと検索 API によって異なります。使用しているインデックスタイプと検索 API でこの機能がサポートされているかどうかを確認するには、インデックスの検索に関するページを参照してください。

ドキュメントのカスタム属性またはフィールドを、Amazon Kendra インデックスに作成することができます。例えば、「HR」、「Sales」、「Manufacturing」という値を持つ「Department」というカスタムフィールドまたは属性を作成できます。この場合、これらのカスタムフィールドまたは属性を Amazon Kendra のインデックスにマッピングすると、これらのフィールドまたは属性を使用して、「HR」部門属性をもつドキュメントを含めるように検索結果をフィルタリングすることができます。

カスタムフィールドまたは属性を使用するには、まずインデックスにフィールドを作成する必要があります。インデックスフィールドを作成るには、コンソールを使用してデータソースフィールドマッピングを編集し、カスタムフィールドを追加するか、UpdateIndex API を使用します。フィールドを作成すると、フィールドデータ型を変更することはできません。

ほとんどのデータソースの場合、外部データソースのフィールドを Amazon Kendra の対応するフィールドにマッピングします。詳細については、「データソースフィールドのマッピング」を参照してください。S3 データソースでは、JSON メタデータファイルを使用してカスタムフィールドまたは属性を作成できます。

最大 500 のカスタムフィールドまたは属性を作成できます。

Amazon Kendra の予約フィールドや共通フィールドも使用することができます。詳細については、「Document attributes or fields」を参照してください。

カスタムドキュメントフィールドの更新

UpdateIndex API では、DocumentMetadataConfigurationUpdates パラメータを使用してカスタムフィールドまたは属性を追加します

次の JSON の例では、DocumentMetadataConfigurationUpdates を使用して「Department」というフィールドをインデックスに追加します。

"DocumentmetadataConfigurationUpdates": [ { "Name": "Department", "Type": "STRING_VALUE" } ]

以下のセクションでは、BatchPutDocument および Amazon S3 データソースを使用してカスタム属性またはフィールドを追加する例を示しています。

BatchPutDocument API を使用したカスタム属性またはフィールドの追加

BatchPutDocument API を使用してドキュメントをインデックスに追加する場合、Attributes の一部としてカスタムフィールドまたは属性を指定します。API を呼び出すと、複数のフィールドまたは属性を追加できます。最大 500 のカスタムフィールドまたは属性を作成できます。次の例は、ドキュメントに「Department」を追加するカスタムフィールドまたは属性です。

"Attributes": { "Department": "HR", "_category": "Vacation policy" }

Amazon S3 データソースへのカスタム属性またはフィールドの追加

S3 バケットをインデックスのデータソースとして使用する場合は、コンパニオンメタデータファイルを使用してドキュメントにメタデータを追加します。メタデータ JSON ファイルは、ドキュメントと平行なディレクトリ構造に配置します。詳細については、「S3 document metadata」を参照してください。

カスタムフィールドまたは属性は、Attributes JSON 構造で指定します。最大 500 のカスタムフィールドまたは属性を作成できます。例えば、以下の例では Attributes を使用して 3 つのカスタムフィールドまたは属性と 1 つの予約フィールドを定義しています。

"Attributes": { "brand": "Amazon Basics", "price": 1595, "_category": "sports", "subcategories": ["outdoors", "electronics"] }

次の手順では、Amazon S3 データソースにカスタム属性を追加する方法を説明します。

ステップ 1: Amazon Kendra インデックスを作成する

インデックスの作成」の手順に従って Amazon Kendra のインデックスを作成します。

ステップ 2: インデックスを更新してカスタムドキュメントフィールドを追加する

インデックスを作成したら、そのインデックスにフィールドを追加します。次の手順は、コンソールと CLI を使用してインデックスにフィールドを追加する方法を示しています。

Console
インデックスフィールドを作成するには
  1. インデックスが作成されていることを確認します。

  2. 左側のナビゲーションメニューから、 [データ管理] で、[ファセットの定義] を選択します。

  3. [インデックスフィールド設定ガイド][インデックスフィールド] から、[フィールドの追加] を選択してカスタムフィールドを追加します。

  4. [Add index field] (インデックスフィールドの追加) ダイアログボックスで、以下の操作を行います。

    • [フィールド名] – フィールド名を追加します。

    • [データ型][文字列][文字列リスト][日付] のいずれかのデータ型を選択します。

    • [使用タイプ][ファセット可能][検索可能][表示可能][ソート可能] から使用タイプを選択します。

      次に、[追加] を選択します。

    マッピングする他のフィールドについても、この最後の手順を繰り返します。

CLI
aws kendra update-index \ --region $region \ --endpoint-url $endpoint \ --application-id $applicationId \ --index-id $indexId \ --document-metadata-configuration-updates \ "[ { "Name": "string", "Type": "STRING_VALUE"|"STRING_LIST_VALUE"|"LONG_VALUE"|"DATE_VALUE", "Relevance": { "Freshness": true|false, "Importance": integer, "Duration": "string", "RankOrder": "ASCENDING"|"DESCENDING", "ValueImportanceMap": {"string": integer ...} }, "Search": { "Facetable": true|false, "Searchable": true|false, "Displayable": true|false, "Sortable": true|false } } ... ]"

ステップ 3: Amazon S3 データソースを作成し、データソースフィールドをカスタム属性にマッピングする

Amazon S3 データソースを作成してフィールドにマッピングするには、「Amazon S3」の手順に従います。

API を使用している場合は、CreateDataSource API を使用するときに configuration の下にある fieldMappings 属性を使用します。

データソースフィールドのマッピング方法の概要については、「データソースフィールドのマッピング」を参照してください。