通过添加计分概要文件提高结果的相关性

已完成

Azure AI 搜索使用 BM25 相似性排名算法。 算法根据所使用的搜索词对文档评分。

在这里,你将了解如何添加计分概要文件,以根据自己的条件更改文档的分数。

如何计算搜索分数

评分是处理搜索查询的最后一个阶段。

A diagram showing the score phase of search highlighted.

搜索引擎对前三个阶段返回的文档评分。 分数是标识搜索词出现在文档中的次数、文档的大小和每个字词的罕见性的函数。 默认情况下,搜索结果按搜索分数排序,最高优先。 如果两个文档具有相同的搜索分数,则可以通过添加 $orderby 子句来打破僵局。

提高更具相关性的文档的分数

由于默认评分按术语和罕见性的频率工作,因此最终计算的分数可能不会返回最相关的文档的最高分数。 每个数据集都不同,因此 AI 搜索允许你使用计分概要文件影响文档分数。

A diagram showing a weighted field score.

最直接的计分概要文件为索引中的字段定义不同的权重。 在上面的示例中,酒店索引具有“说明”字段的相关性比“位置”或“房间”字段中的数据的相关性多五倍的计分概要文件。 “类别”字段的相关性是 HotelName 的相关性的两倍。

计分概要文件还可以包括函数,例如距离或新鲜度。 函数提供比简单权重更多的控制,例如,在给出与较旧文档相同的分数之前,可以定义应用于较新文档的提高持续时间。

计分概要文件的功能意味着,无需在搜索请求中提升特定字词,即可将计分概要文件应用于索引,以便为所有查询自动提升字段。

添加加权计分概要文件

最多可以向搜索索引添加 100 个计分概要文件。 创建计分概要文件的最简单方法是 Azure 门户。

  1. 导航到你的搜索服务。
  2. 选择“索引”,然后选择要向其添加计分概要文件的索引。
  3. 选择“计分概要文件”
  4. 选择“+ 添加计分概要文件”。
  5. 在“概要文件名称”中,输入唯一名称。
  6. 要将计分概要文件设置为应用于所有搜索的默认配置文件,请选择“设置为默认概要文件”。
  7. 在“字段名称”中,选择一个字段。 在“权重”中,输入权重值。
  8. 选择“保存”。

A screenshot of the Azure portal scoring profiles pane.

在上面的示例中,boost-category 计分概要文件已添加到 hotels-sample-index。 类别的权重为 5。

配置文件也已设置为默认配置文件。 然后,可以使用此搜索查询:

search=luxury AND Tags:'air con'*&$select=HotelId, HotelName, Category, Tags, Description&$count=true&queryType=full

结果现在与提升字词相同的查询匹配:

search=(Description:luxury OR Category:luxury^5) AND Tags:'air con'*&$select=HotelId, HotelName, Category, Tags, Description&$count=true&queryType=full

可以通过追加 &scoringProfile=PROFILE NAME 参数来控制应用于搜索查询的计分概要文件。

还可以使用更新索引 REST API 或 Azure SDK(例如 Azure SDK for .NET 中的 ScoringProfile 类)以编程方式添加计分概要文件。

在计分概要文件中使用函数

可用于添加到计分概要文件的函数包括:

函数 说明
度量值 根据数字字段的值范围更改分数
新鲜度 根据 DateTimeOffset 字段给定的文档时效性更改分数
距离 根据参考位置与 GeographyPoint 字段之间的距离更改分数
标记 根据文档和查询中的常见标记值更改分数

例如,使用酒店索引,可以将度量值函数应用于“评分”字段。 Azure 门户将指导你完成每个函数的参数。

A screenshot showing the parameters for the magnitude function.