Amazon Kendra 是由机器学习(ML)驱动的智能搜索服务。Amazon Kendra 可以帮助您轻松地从各种内容库中聚合内容到一个集中式索引中,让您快速搜索所有企业数据并找到最准确的答案。 Drupal 是一款内容管理软件。我们每天使用的许多网站和应用程序都是使用Drupal制作的。Drupal具有出色的功能集,如直观的内容撰写,可靠的性能和安全性。许多组织使用Drupal来存储其内容。对于使用Drupal的许多客户而言,可以轻松安全地在数据源中的所有文档中查找准确的信息是一个关键要求。
通过Amazon Kendra Drupal连接器,您可以索引Drupal内容,过滤您想索引的自定义内容类型,并使用Amazon Kendra智能搜索轻松搜索Drupal内容。
本文将向您展示如何使用Amazon Kendra Drupal连接器,将连接器配置为Amazon Kendra索引的数据源,并搜索您的Drupal文档。根据Drupal连接器的配置,您可以同步连接器以对各种Drupal内容(例如博客和维基)进行抓取和索引。该连接器还会引入每个文件的访问控制列表(ACL)信息。ACL信息用于用户上下文过滤,其中查询的搜索结果会根据用户的授权访问权限进行过滤。
先决条件
要使用本文作为参考,在Drupal上尝试Amazon Kendra连接器,您需要以下内容:
- 具有创建AWS Identity and Access Management(IAM)角色和策略的权限的AWS帐户。有关更多信息,请参阅访问管理概述:权限和策略和Drupal数据源的IAM角色。
- 有关AWS的基本知识和Drupal管理的工作知识。
- 已设置好的Drupal,其中有一个具有
Administrator
角色的用户。我们将在AWS Secrets Manager中存储管理员用户名和密码。
使用Amazon Kendra Drupal连接器配置数据源
要使用Drupal连接器向您的Amazon Kendra索引添加数据源,可以使用现有索引或创建新索引。然后完成以下步骤。有关此主题的更多信息,请参阅Amazon Kendra开发人员指南。
- 在Amazon Kendra控制台上,打开您的索引,并在导航窗格中选择数据源。
- 选择添加数据源。
- 在Drupal下,选择添加连接器。
- 在指定数据源详细信息部分,输入名称和描述,然后选择Next。
- 在定义访问和安全性部分,对于Drupal主机URL,请输入Drupal站点URL。
- 要配置SSL证书,您可以使用
openssl x509 -in mydrupalsite.pem -out drupal.crt
命令为此设置创建自签名证书,并将证书存储在Amazon Simple Storage Service(Amazon S3)存储桶中。有关生成私钥和证书的更多详细信息,请参阅生成证书。 - 选择浏览S3,然后选择具有SSL证书的S3存储桶。
- 在身份验证下,您有两个选项:
- 使用Secrets Manager创建新的Drupal身份验证凭证。您需要Drupal管理员用户名和密码(此外,还需要用于OAuth 2.0身份验证的客户端ID和客户端密钥)。
- 使用已存在的Secrets Manager秘密,其中包含要让连接器访问的Drupal身份验证凭据(此外,还需要用于OAuth 2.0身份验证的客户端ID和客户端密钥)。
- 选择保存并添加秘密。
- 对于IAM角色,选择创建新角色或选择已配置了适当IAM策略以访问Secrets Manager秘密、Amazon Kendra索引和数据源的现有IAM角色。
请参考IAM数据源角色的所需权限。
- 选择下一步。
- 在配置同步设置部分,选择需要爬取评论和附件的文章、基本页面、基本块、自定义内容类型和自定义块。
- 可选择为实体标题输入包含/排除模式。
- 提供同步范围(完全或仅增量)和指定运行计划的相关信息。
- 选择下一步。
- 在设置字段映射部分,添加您想同步的自定义Drupal字段和它们对应的Amazon Kendra字段映射。Amazon Kendra会预先设置必需字段。
- 选择下一步。
- 审查配置设置并保存数据源。
- 选择已创建的数据源上的立即同步,开始与Amazon Kendra索引进行数据同步。
爬取和同步内容到Amazon Kendra所需的时间取决于内容的数量和吞吐量。
现在您可以使用搜索控制台或搜索应用程序来搜索索引化的Drupal内容。如需使用ACL进行搜索,可按以下步骤操作:
- 进入您创建的索引页面,在用户访问控制选项卡上,选择编辑设置。
- 在访问控制设置下,选择是,保留用户名和组的默认值,选择JSON作为令牌类型,并将用户组扩展保持为无。
- 在下一页上,保留默认值(或根据您的容量需求进行更改)并选择更新。
使用Amazon Kendra进行智能搜索
在尝试在Amazon Kendra控制台上搜索或使用API之前,请确保数据源同步已完成。检查数据源并验证上次同步是否成功。
- 要开始搜索,请在Amazon Kendra控制台上选择导航窗格中的搜索索引内容。
您将被重定向到Amazon Kendra搜索控制台。现在您可以使用Amazon Kendra搜索从您使用Amazon Kendra索引的Drupal文档中获取信息。
- 对于此帖子,我们搜索在Drupal数据源中存储的文档。
- 展开使用访问令牌进行测试查询并选择应用令牌。
- 对于用户名,请输入与您的Drupal帐户关联的电子邮件地址。
- 选择应用。
现在,用户只能看到基于用户名或指定组的访问权限所允许的内容。在我们的示例中,带有test@amazon.com
电子邮件的Drupal用户无法访问Drupal上的任何文档,因此不会显示任何内容。
限制
在使用此解决方案时,请注意以下限制:
- 不与任何视图相关联的内容类型(例如文章或基本页面)无法进行爬取。
- 如果管理员无权访问块,则无法从块中爬取数据。
- 以HTML格式显示文章、基本页面、基本块、用户定义的内容类型和用户定义的块类型的文档正文。如果HTML内容格式不正确,则HTML相关标签将显示在文档正文中,并且可以在Amazon Kendra搜索结果中看到。这也适用于文章、基本页面、基本块、用户定义的内容类型和用户定义的块类型的评论。
- 没有描述或正文的内容类型或块类型将不会被注入到Amazon Kendra索引中,因为Amazon Kendra SDK端进行了验证。但是,Drupal允许您创建没有描述或正文的内容类型。仅将相应内容类型或块类型的评论和附件(如果存在)插入到Amazon Kendra索引中。
清理
为了避免未来的费用,请清理此解决方案的创建的资源。如果您在测试此解决方案时创建了新的Amazon Kendra索引,请删除它。如果您只是使用Drupal的Amazon Kendra连接器添加了新的数据源,请删除该数据源。删除任何已创建的IAM用户。
结论
通过Amazon Kendra Drupal连接器,您的组织可以以安全的方式使用由Amazon Kendra提供支持的智能搜索来搜索存储在Drupal站点中的内容。在本文中,我们向您介绍了该集成,但还有许多其他功能我们没有涵盖,例如:
- 您可以将其他字段映射到Amazon Kendra索引属性,并启用它们进行聚合、搜索和在搜索结果中显示
- 您可以将Drupal数据源与Amazon Kendra的自定义文档增强(CDE)功能集成,以执行其他属性映射逻辑,甚至在引入期间进行自定义内容转换
要了解有关Drupal的更多可能性,请参阅Amazon Kendra开发人员指南。
要获取有关流行数据源的其他亚马逊 Kendra 内置连接器的更多信息,请参阅亚马逊 Kendra 连接器页面。