创建自定义文档字段 - Amazon Kendra

创建自定义文档字段

注意

功能支持因所用索引类型和搜索 API 而异。要查看您使用的索引类型和搜索 API 是否支持此功能,请参阅搜索索引

您可以为 Amazon Kendra 索引中的文档创建自定义属性或字段。例如,您可以创建一个名为“Department”的自定义字段或属性,其值为“HR”、“Sales”和“Manufacturing”。例如,如果您将这些自定义字段或属性映射到 Amazon Kendra 索引,则可以使用它们来筛选搜索结果,使之包含带“HR”部门属性的文档。

必须先在索引中创建字段,然后才能使用自定义字段或属性。使用控制台编辑数据来源字段映射以添加自定义字段,或者使用 UpdateIndex API 来创建索引字段。创建字段后无法更改字段的数据类型。

对于大多数数据来源,您可以将外部数据来源中的字段映射到 Amazon Kendra 中的相应字段。有关更多信息,请参阅映射数据来源字段。对于 S3 数据来源,您可以使用 JSON 元数据文件来创建自定义字段或属性。

最多可以创建 500 个自定义字段或属性。

您也可以使用 Amazon Kendra 的保留字段或常用字段。有关更多信息,请参阅文档属性或字段

创建自定义文档字段

使用 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 文档元数据

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

"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. 添加索引字段对话框中,执行以下操作:

    • 字段名 - 添加字段名称。

    • 数据类型 - 选择数据类型,可以是字符串字符串列表日期

    • 使用类型 - 选择使用类型,可以是可分面可搜索可显示可排序

      然后,选择添加

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

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 属性。

有关如何映射数据来源字段的概述,请参阅映射数据来源字段