

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

# カスタムドキュメントフィールドの作成
<a name="custom-attributes"></a>

**注記**  
機能のサポートは、使用されているインデックスタイプと検索 API によって異なります。使用しているインデックスタイプと検索 API でこの機能がサポートされているかどうかを確認するには、[インデックスの検索](https://docs.aws.amazon.com/kendra/latest/dg/hiw-index.html#index-searching)に関するページを参照してください。

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

カスタムフィールドまたは属性を使用するには、まずインデックスにフィールドを作成する必要があります。インデックスフィールドを作成るには、コンソールを使用してデータソースフィールドマッピングを編集し、カスタムフィールドを追加するか、[UpdateIndex](https://docs.aws.amazon.com/kendra/latest/APIReference/API_UpdateIndex.html) API を使用します。フィールドを作成すると、フィールドデータ型を変更することはできません。

ほとんどのデータソースの場合、外部データソースのフィールドを Amazon Kendraの対応するフィールドにマッピングします。詳細については、「[データソースフィールドのマッピング](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html)」を参照してください。S3 データソースでは、JSON メタデータファイルを使用してカスタムフィールドまたは属性を作成できます。

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

 Amazon Kendra リザーブドフィールドまたは共通フィールドを使用することもできます。詳細については、「[Document attributes or fields](https://docs.aws.amazon.com/kendra/latest/dg/hiw-document-attributes.html)」を参照してください。

**Topics**
+ [カスタムドキュメントフィールドの更新](#update-attributes)

## カスタムドキュメントフィールドの更新
<a name="update-attributes"></a>

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

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

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

以下のセクションでは、[BatchPutDocument](https://docs.aws.amazon.com/kendra/latest/APIReference/API_BatchPutDocument.html) および Amazon S3 データソースを使用してカスタム属性またはフィールドを追加する例を示しています。

**Topics**
+ [BatchPutDocument API を使用したカスタム属性またはフィールドの追加](#custom-attributes-batch)
+ [Amazon S3 データソースへのカスタム属性またはフィールドの追加](#custom-attributes-s3)

### BatchPutDocument API を使用したカスタム属性またはフィールドの追加
<a name="custom-attributes-batch"></a>

[BatchPutDocument](https://docs.aws.amazon.com/kendra/latest/APIReference/API_BatchPutDocument.html) API を使用してドキュメントをインデックスに追加する場合、`Attributes` の一部としてカスタムフィールドまたは属性を指定します。API を呼び出すと、複数のフィールドまたは属性を追加できます。最大 500 のカスタムフィールドまたは属性を作成できます。次の例は、ドキュメントに「Department」を追加するカスタムフィールドまたは属性です。

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

### Amazon S3 データソースへのカスタム属性またはフィールドの追加
<a name="custom-attributes-s3"></a>

S3 バケットをインデックスのデータソースとして使用する場合は、コンパニオンメタデータファイルを使用してドキュメントにメタデータを追加します。メタデータ JSON ファイルは、ドキュメントと平行なディレクトリ構造に配置します。詳細については、「[S3 document metadata](https://docs.aws.amazon.com/kendra/latest/dg/s3-metadata.html)」を参照してください。

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

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

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

**Topics**
+ [ステップ 1: Amazon Kendra インデックスを作成する](#custom-attributes-s3-1)
+ [ステップ 2: インデックスを更新してカスタムドキュメントフィールドを追加する](#custom-attributes-s3-2)
+ [ステップ 3: Amazon S3 データソースを作成し、データソースフィールドをカスタム属性にマッピングする](#custom-attributes-s3-3)

#### ステップ 1: Amazon Kendra インデックスを作成する
<a name="custom-attributes-s3-1"></a>

「[インデックスの作成](create-index.md)」の手順に従って Amazon Kendra のインデックスを作成します。

#### ステップ 2: インデックスを更新してカスタムドキュメントフィールドを追加する
<a name="custom-attributes-s3-2"></a>

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

------
#### [ Console ]

**インデックスフィールドを作成するには**

1. [インデックスが作成](https://docs.aws.amazon.com/kendra/latest/dg/create-index.html)されていることを確認します。

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

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

1. **[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 データソースを作成し、データソースフィールドをカスタム属性にマッピングする
<a name="custom-attributes-s3-3"></a>

Amazon S3 データソースを作成してフィールドにマッピングするには、「[Amazon S3](data-source-s3.md)」の手順に従います。

API を使用している場合は、[CreateDataSource](https://docs.aws.amazon.com/kendra/latest/APIReference/API_CreateDataSource.html) API を使用するときに `configuration` の下にある `fieldMappings` 属性を使用します。

データソースフィールドのマッピング方法の概要については、「[データソースフィールドのマッピング](field-mapping.md)」を参照してください。