使用 Amazon Kendra

创建和查询索引

在本教程中,您将学习如何使用 Amazon Kendra 创建新索引并查询该索引以获取结果。

Amazon Kendra 是一款由机器学习支持的高度准确且易于使用的企业搜索服务。Amazon Kendra 可以为您的网站和应用程序提供强大的搜索功能,这样您的终端用户就能够在公司广泛分布的海量内容中快速找到所需的信息。

借助 Amazon Kendra,您既可以使用简单的关键词进行搜索,也可以提出自然语言问题来获取所寻求的答案,而答案可能是精确答案、FAQ 解答,也可能是完整文档。您还可以使用 Amazon Kendra 轻轻松松将来自 Amazon S3、Amazon RDS、Microsoft SharePoint Online、ServiceNow 和 Salesforce 的内容添加到一个集中的位置。

在本教程中,您将学习如何:

  1. 在 Amazon Kendra 上设置一个新索引
  2. 使用 Amazon Kendra 连接器将一个 Amazon S3 存储桶设为数据源并从中获取数据
  3. 设置一个 FAQ 数据源
  4. 使用控制台搜索功能查询索引

在本教程中,您将使用 Amazon Kendra 数据源连接器发现的 HTML 格式的 Amazon.com 帮助文档。

关于本教程
时间 1 小时
成本 低于 1 美元
使用场景 机器学习
产品 Amazon Kendra
受众 开发人员
级别 新手
上次更新时间 2020 年 9 月 11 日

步骤 1:创建 AWS 账户

本教程所需的费用低于 1 美元。

已经有账户?登录

步骤 2:设置 Amazon Kendra 索引

通过完成下列步骤来设置 Amazon Kendra 索引。索引可以包含从数据源编制索引的文档、直接添加到索引的文档以及 FAQ。启用索引后,您可以通过相关操作或某个受支持的数据源对文档进行索引。

注意:有关更多信息,请参阅 Amazon Kendra 文档中的创建索引


a. 登录 Amazon Kendra 控制台,然后确认右上角的 AWS 区域已设为 N. Virginia(弗吉尼亚州北部)。然后点击 Create an index(创建索引)。


b. 在 Index details(索引详细信息)部分中,填写下列字段后点击 Next(下一步)。

  • Index name(索引名称)输入 hands-on-tutorial
  • Description(说明)输入 Amazon Kendra tutorial.
  • IAM role(IAM 角色)选择 Create a new role(创建新角色)
  • Role name(角色名称)输入 AmazonKendra-us-east-1-hands-on-tutorial

c. 在 Provisioning editions(预配置版本)部分中,选择 Developer edition(开发者版本),然后点击 Create(创建)。

索引创建过程平均需要 15 分钟,最长可能需要 30 分钟。

步骤 3:更新 IAM 角色

创建索引、数据源或 FAQ 时,Amazon Kendra 需要访问创建 Amazon Kendra 资源所需的 AWS 资源。在索引创建过程中,您可以更新 IAM 角色,允许其从 Amazon S3 中读取数据。在生产环境中,您可以在此步骤中锁定访问权限,使其只能读取特定的存储桶或文件/对象。

通过完成下列步骤来更新 IAM 角色,从而允许对 Amazon S3 进行访问。

注意:有关更多信息,请参阅 Amazon Kendra 文档中的适用于 Amazon Kendra 的 IAM 访问角色


a. 打开  IAM 控制台,在左侧导航窗格中选择 Roles(角色)。在搜索框中,输入  hands-on-tutorial。选择 AmazonKendra-us-east-1-hands-on-tutorial 角色。

b. 在 Summary(摘要)页面上,点击  Attach policies(附加策略)。

c. 在 Attach permissions(附加权限)页面上,在搜索框中输入 S3,然后选择 AmazonS3ReadOnlyAccess 策略。点击 Attach policy(附加策略)。
在  Summary(摘要)页面上,您应当会看到 IAM 角色附加了两个策略。

d. 回到 Amazon Kendra 控制台,等待您在步骤 2 中创建的索引的状态从 Creating(创建中)变为 Active(启用),然后再执行下一步。

步骤 4:将 S3 连接器配置到数据源

数据源是存储索引文档的位置,如 Amazon Simple Storage Service (Amazon S3) 存储桶。系统支持数据源与 Amazon Kendra 索引自动同步,使得源存储库中的新建文档、更新文档或已删除文档都能包含在搜索结果中。连接器维护文档的访问权限,并可以按计划自动同步索引与数据源,从而确保您搜索的内容始终都是最新的。

通过完成下列步骤将一个连接器添加到 Amazon S3 存储桶,该存储桶包含了用作数据源的 Amazon.com 帮助文档样例。

注意:有关更多信息,请参阅 Amazon Kendra 文档中的数据源


a. 在  Indexes(索引)列表中,选择  hands-on-tutorial

b. 在左侧导航窗格的  Data management(数据管理)下,选择  Data sources(数据源)。在连接器类型下的  Amazon S3 框中,选择  Add connector(添加连接器)。

c. 在 Define attributes(定义属性)页面的 Data source name(数据源名称)文本框中,输入 Amazon-com-help-pages,然后点击 Next(下一步)。


d. 在 Configure settings(配置设置)页面的 Data source location(数据源位置)文本框中,输入 s3://serverless-analytics。在 IAM role(IAM 角色)部分中,选择您之前创建的 AmazonKendra-us-east-1-hands-on-tutorial 角色。然后,展开 Additional configuration(其他配置)。


e. 在  Additional configuration(其他配置)部分的 I nclude patterns(包含模式)下,输入  amazon-help/documents/,然后点击  Add(添加)。

f. 在  Set sync run schedule(设置同步运行计划)部分的  Frequency(频率)下,选择  Run on demand(按需运行),然后点击  Next(下一步)。

g. 检查配置详细信息,然后点击  Create(创建)。

h. 在 Data source details(数据源详细信息)页面上,点击 Sync now(立即同步)。
S3 连接器便会根据为其分配的 IAM 角色开始对有权限访问的内容进行爬取和索引。

同步完成时,数据源的  Last sync status(上次同步状态)将变为  Succeeded(成功)。

步骤 5:添加 FAQ

在此步骤中,您将上传一个 FAQ,以便 Kendra 能够为常见问题提供直接的答案。Amazon Kendra 可以找到与检索查询最接近的问题,并返回对应的答案。

通过完成下列步骤,可使用示例的 amazon-help-faqs 来添加一个 FAQ。

注意:有更多信息,请参阅 Amazon Kendra 功能


a. 在 Amazon Kendra 控制台的左侧导航窗格中,选择 FAQs,然后点击 Add FAQ(添加 FAQ)。


b. 在 Add FAQ(添加 FAQ)页面上,填写下列字段后点击 Add(添加):

  • FAQ name(FAQ 名称):输入 amazon-help-faqs
  • S3:输入 s3://serverless-analytics/amazon-help/faqs/kendrapost.csv
  • IAM role(IAM 角色):选择 AmazonKendra-us-east-1-hands-on-tutorial

此时您应当会看到新的 FAQ,以及这样一条消息:You successfully created the following FAQ:’amazon-help-faqs’.(下列 FAQ 创建成功:amazon-help-faqs。)

步骤 6:查询索引

现在您可以使用文本搜索控制台来查询您新建的索引。这只是查询索引的众多方式中的一种。搜索索引时,Amazon Kendra 充分利用您提供的所有信息,返回对您的搜索查询而言最准确、最相关的答案或文档。

通过完成下列步骤来查询您新建的索引。

注意:有关更多信息,请参阅 Amazon Kendra 文档中的搜索索引


a. 在 Amazon Kendra 控制台的左侧导航窗格中,选择 Search console(搜索控制台)。在搜索框中,输入您的第一个查询:What is Amazon music unlimited?(什么是 Amazon music unlimited?)

在搜索结果最上方,您可以看到 Amazon Kendra 返回的一个结果。

b. 接下来,输入另一个查询:shipping rates to Canada(到加拿大的运费)

您可以看到 Amazon Kendra 返回的另一个结果。


c. 输入一个更为直接的查询:How do I sign up for the Amazon Prime free Trial?(如何注册 Amazon Prime 试用版?)

在搜索结果中,您可以看到 Amazon Kendra 从索引的文档中提取的推荐答案,以及来自 FAQ 数据源的新答案。

步骤 7:清除资源

在此步骤中,您将终止本实验中使用的资源。

重要说明:终止当前未使用的资源可降低成本,这是一种最佳做法。如果没有终止资源,则系统会继续从您的账户中扣费。


删除索引:

  1. 打开 Amazon SageMaker 控制台
  2. 在左侧导航窗格中,选择 Indexes(索引)。
  3. 选择 hands-on-tutorial 索引,然后从 Actions(操作)下拉菜单中选择 Delete(删除)。
  4. 输入 Delete 确认删除。

删除 IAM 角色和策略:

  1. 打开 IAM 控制台
  2. 在左侧导航窗格中,选择 Roles(角色)。
  3. 在搜索框中,输入 hands-on-tutorial
  4. 选择 AmazonKendra-us-east-1-hands-on-tutorial 角色,然后选择 Delete role(删除角色)。
  5. 选择 Yes, delete(是的,删除)。
  6. 在左侧导航窗格中,选择 Policies(策略)。
  7. 在搜索框中,输入 hands-on-tutorial
  8. 选择 AmazonKendra-us-east-1-hands-on-tutorial 策略,然后依次选择 Policy actions(策略操作)和 Delete(删除)。
  9. 选择 Delete(删除)。

恭喜您

您已使用 Amazon Kendra 完成了创建和查询索引操作。

此教程对您有用吗?

推荐的后续步骤

了解更多

若想了解更多有关 Amazon Kendra 的信息,请查看 Amazon Kendra 开发人员指南

阅读更多有关 Amazon Kendra 功能的信息

有更多信息,请查看 Amazon Kendra 功能页面

探索其他机器学习服务教程