

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

# 调整搜索相关性
<a name="tuning"></a>

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

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

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

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

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

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

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

您可以指定日期、数字或字符串属性来调整索引或在查询级别进行调整。`StringList` 类型的字段或属性只能在索引级别进行调整。对于何时提升结果，每个字段或属性都有特定的条件。
+ **日期字段或属性** - 日期字段有三个特定的条件：`Freshness`、`Duration` 和 `RankOrder`。
  +  `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` 字段。

## 在索引级别进行相关性调整
<a name="tuning-index"></a>

通过使用[控制台](https://console.aws.amazon.com/kendra/)在详细信息或 [UpdateIndex API](https://docs.aws.amazon.com/kendra/latest/APIReference/API_UpdateIndex.html) 中设置调整，从而在索引级别调整字段或属性的相关性。

以下示例将 `_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
            }
        }
    }
]
```

## 在查询级别进行相关性调整
<a name="tuning-query"></a>

您可以使用[查询 API](https://docs.aws.amazon.com/kendra/latest/APIReference/API_Query.html) 在查询级别调整字段或属性的相关性。

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

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

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

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