你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure AI 搜索中将评分配置文件与语义排序器配合使用

可以对语义排名搜索结果应用计分概要文件,并且系统将在最后处理计分概要文件。

为了确保评分配置文件提供确定分数,语义排名器会添加一个响应字段, @search.rerankerBoostedScore用于对语义排名结果应用评分配置文件逻辑。 在搜索结果中,包括来自级别 1 排名的 @search.score、语义排序器的 @search.rerankerScore@search.reRankerBoostedScore,结果根据 @search.reRankerBoostedScore 进行排序。

Prerequisites

Limitations

语义排名结果的提升仅适用于计分概要文件函数。 如果计分概要文件仅包含加权文本字段,则不会进行提升。

使用评分配置文件的语义配置的工作原理是什么?

执行与评分配置文件相关的语义查询时,将为搜索结果中的每个文档生成一个第三搜索分数,其值为 @search.rerankerBoostedScore。 此提升的评分是通过将评分配置文件应用于现有的重新排序器得分来计算的,不像正常的重新排序器得分那样有保证的范围(0-4),分值可以明显高于4。

如果存在评分配置文件,默认情况下会对语义结果按 @search.rerankerBoostedScore 排序。 如果未指定属性 rankingOrderBoostedRerankerScore 则为语义配置中的默认值。

在这个场景中,计分配置文件被使用了两次。

  1. 首先,在索引中定义的计分配置文件在初始 L1 排名阶段使用,从而提升以下结果:

    • 基于文本的查询(BM25 或 RRF)
    • 矢量查询的文本部分
    • 合并这两种类型的混合查询
  2. 接下来,语义排名器重新对前 50 个结果进行评分,从而提升与顶部更相关的语义匹配。 此步骤可以清除计分配置文件的好处。 例如,如果基于新鲜度进行了提升,那么语义重排序会用其自身的逻辑来替代该提升,以确定最相关的内容。

  3. 最后,在重新排序之后,再次应用评分配置文件,以恢复增强对最终结果顺序的影响。 如果通过新鲜度提升,则对语义排名的结果根据新鲜度进行重新评分。

在语义配置中启用评分配置文件

若要为语义排名的结果启用计分配置文件,请通过设置其语义配置中的 rankingOrder 属性来更新索引。 使用 PUT 方法更新索引的修订内容。 无需重新生成索引。

PUT https://{service-name}.search.windows.com/indexes/{index-name}?api-version=2025-09-01
{
  "semantic": {
    "configurations": [
      {
        "name": "mySemanticConfig",
        "rankingOrder": "boostedRerankerScore"
      }
    ]
  }
}

在语义配置中禁用评分配置文件

若要选择退出按语义重排器提升分数排序,请将 rankingOrder 字段设置为 reRankerScore 语义配置中的值。

PUT /indexes/{index-name}?api-version=2025-09-01
{
  "semantic": {
    "configurations": [
      {
        "name": "mySemanticConfig",
        "rankingOrder": "reRankerScore"
      }
    ]
  }
}

即使选择退出排序依据 @search.rerankerBoostedScore,该 boostedRerankerScore 字段仍然在响应中生成,但它不再用于对结果进行排序。

示例查询和响应

从指定评分配置文件的语义查询开始。 查询针对的是rankingOrder设置为boostedRerankerScore的搜索索引。

POST /indexes/{index-name}/docs/search?api-version=2025-09-01
{
  "search": "my query to be boosted",
  "scoringProfile": "myScoringProfile",
  "queryType": "semantic"
}

响应包括新的 rerankerBoostedScore,以及 L1 @search.score 和 L2 @search.rerankerScore。 结果按 @search.rerankerBoostedScore 排列。

{
  "value": [
    {
      "@search.score": 0.63,
      "@search.rerankerScore": 2.98,
      "@search.rerankerBoostedScore": 7.68,
      "content": "boosted content 2"
    },
    {
      "@search.score": 1.12,
      "@search.rerankerScore": 3.12,
      "@search.rerankerBoostedScore": 5.61,
      "content": "boosted content 1"
    }
  ]
}