调整搜索相关性 - Amazon Kendra

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

调整搜索相关性

Amazon Kendra 查询生成按相关性排名的搜索结果。索引中的可搜索字段或属性都对排名有影响。

您可以通过相关性调整来修改字段或属性对搜索相关性的影响。要调整搜索相关性,您可以在索引级别手动调整,也可以在索引级别为索引设置调整配置,还可以在查询级别覆盖在索引级别设置的配置,从而进行调整。

当使用相关性调整时,如果查询包含与字段或属性匹配的字词,则给出结果的响应速度将得到提升。您还可以指定有匹配时,文档将获得多少提升。相关性调整不会 Amazon Kendra 导致在查询响应中包含文档,它只是 Amazon Kendra 用于确定文档相关性的因素之一。

您可以提升索引中的特定字段或属性,从而为特定响应分配更高的重要性。例如,如果有人搜索“re:Invent 是在何时?” 你可以提高该_last_update_at领域文档新鲜度的相关性。或者,在研究报告索引中,您可以提升“source”字段中的特定数据来源。

您还可以根据投票或查看次数来提升文档,这在论坛和其他支持知识库中很常见。例如,您可以组合提升,从而提高查看次数和最近查看次数较多的文档。

您可以使用 Importance 参数设置文档获得的提升量。Importance 越高,字段或属性越能提升文档的相关性。当您调整索引或在查询级别调整时,请以较小的增量来增加 Importance 参数的值,直到实现所需的效果。要确定您是否改善了搜索结果,请执行搜索并将结果与之前的查询进行比较。

您可以指定日期、数字或字符串属性来调整索引或在查询级别进行调整。StringList 类型的字段或属性只能在索引级别进行调整。对于何时提升结果,每个字段或属性都有特定的条件。

  • 日期字段或属性 - 日期字段有三个特定的条件:FreshnessDurationRankOrder

    • Duration 设置应用提升的时间段。例如,如果您将时间段设置为 86400 秒(即一天),则提升在一天后会开始减弱。重要性越高,效果下降的速度越快。

    • Freshness 确定将文档应用于字段或属性时的新鲜程度。如果您将 Freshness 应用到创建日期或上次更新日期的字段,则认为最近创建或上次更新的文档比旧文档“更新鲜”。例如,如果文档 1 是在 11 月 14 日创建的,而文档 2 是在 11 月 5 日创建的,则文档 1 比文档 2 的新鲜度“更高”。另外,如果文档 1 上次更新是在 11 月 14 日,而文档 2 上次更新是在 11 月 20 日,则文档 2 比文档 1 的新鲜度“更高”。文档越新鲜,应用这种提升的次数就越多。索引中只能有一个 Freshness 字段。

    • RankOrder 按升序或降序应用提升。如果指定 ASCENDING,则更晚的日期优先。如果指定 DESCENDING,则更早的日期优先。

  • 数值字段或属性-对于数值字段或属性,您可以指定在确定字段或属性的相关性时 Amazon Kendra 应使用的等级顺序。如果指定 ASCENDING,则较大的数字优先。如果指定 DESCENDING,则较小的数字优先。

  • 字符串字段或属性 - 对于字符串字段或属性,您可以创建字段的类别,以便为每个类别分配不同的提升。例如,如果您提升名为“Department”的字段或属性,则可以对“HR”中的文档和“Legal”中的文档分配不同的提升。您可以提升类型 String 的字段或属性。只能在索引级别提升 StringList 字段。

在索引级别进行相关性调整

您可以使用控制台来调整索引详细信息或 UpdateIndexAPI,从而在索引级别调整字段或属性的相关性。

以下示例将该_last_updated_at字段设置为文档的Freshness字段。

"DocumentMetadataConfigurationUpdates" : [ { "Name": "_last_updated_at", "Type": "DATE_VALUE", "Relevance": { "Freshness": TRUE, "Importance": 2 } } ]

以下示例对“Department”字段中的不同类别应用不同的重要性。

"DocumentMetadataConfigurationUpdates" : [ { "Name": "department", "Type": "STRING_VALUE", "Relevance": { "Importance": 2, "ValueImportanceMap": { "HR": 3, "Legal": 1 } } } ]

在查询级别进行相关性调整

您可以使用查询 API 在查询级别调整字段或属性的相关性。

控制台不支持在查询级别进行相关性调整。

在查询级别进行调整可加快相关性调整的测试过程,因为您无需为每个测试手动更新索引中的调整配置。您可以通过在查询中传递调整配置来调整文档的相关性。然后,您可以查看从不同的配置获得的不同结果。在查询中传递的配置会覆盖在索引级别设置的配置。

以下示例覆盖了应用于“Department”字段和在索引级别设置的每个部门类别的重要性,如上面的示例所示。当用户输入搜索查询时,“Department”字段的重要性相当高,而 Legal 部门的重要性高于 HR 部门。

"DocumentRelevanceOverrideConfigurations" : [ { "Name": "department", "Type": "STRING_VALUE", "Relevance": { "Importance": 2, "ValueImportanceMap": { "HR": 2, "Legal": 8 } } } ]