

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 创建自定义文档字段
<a name="custom-attributes"></a>

**注意**  
功能支持因所用索引类型和搜索 API 而异。要查看您使用的索引类型和搜索 API 是否支持此功能，请参阅[搜索索引](https://docs.aws.amazon.com/kendra/latest/dg/hiw-index.html#index-searching)。

您可以为 Amazon Kendra 索引中的文档创建自定义属性或字段。例如，您可以创建一个名为“Department”的自定义字段或属性，其值为“HR”、“Sales”和“Manufacturing”。例如，如果您将这些自定义字段或属性映射到 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 保留字段或常用字段。有关更多信息，请参阅[文档属性或字段](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 文档元数据](https://docs.aws.amazon.com/kendra/latest/dg/s3-metadata.html)。

您可以在 `Attributes` JSON 结构中指定自定义字段或属性。最多可以创建 500 个自定义字段或属性。例如，以下示例使用 `Attributes` 来定义三个自定义字段或属性以及一个保留字段。

```
"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. 在**添加索引字段**对话框中，执行以下操作：
   + **字段名** - 添加字段名称。
   + **数据类型** - 选择数据类型，可以是**字符串**、**字符串列表**或**日期**。
   + **使用类型** - 选择使用类型，可以是**可分面**、**可搜索**、**可显示**和**可排序**。

     然后，选择**添加**。

   对要映射的任何其他字段重复最后一步。

------
#### [ 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，请在使用 AP [CreateDataSource](https://docs.aws.amazon.com/kendra/latest/APIReference/API_CreateDataSource.html)I `configuration` 时使用下面的`fieldMappings`属性。

有关如何映射数据来源字段的概述，请参阅[映射数据来源字段](field-mapping.md)。