You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Search评分配置问题:销量字段未计入搜索得分

Azure Search评分配置问题解决:销量字段未计入得分及评分分解不显示

核心问题分析

你的问题出在两个关键点:

  • 数值类型字段用于评分函数时,不需要设为可搜索(searchable),但必须开启**可排序(sortable)**属性,否则magnitude评分函数无法读取字段值计算权重。
  • 查询时未正确指定评分配置文件,或featuresMode参数设置不正确,导致评分分解中看不到销量字段的贡献。

解决方案步骤

1. 修正QuantitySold字段的索引属性

确保你的索引中QuantitySold字段的定义包含"sortable": true(不需要设置"searchable": true,数值字段设为可搜索无意义)。示例字段配置:

"fields": [
  // 其他字段...
  {
    "name": "QuantitySold",
    "type": "Edm.Int32",
    "sortable": true,
    "filterable": true, // 可选,如需按销量过滤可开启
    "searchable": false
  }
]

2. 查询时指定目标评分配置

查询索引时,必须通过scoringProfile参数指定你定义的"Product Name"评分配置,否则会使用默认评分逻辑,不会触发自定义评分函数。示例REST API查询请求:

POST /indexes/your-index-name/docs/search?api-version=2023-11-01
Content-Type: application/json

{
  "search": "your-search-term",
  "scoringProfile": "Product Name",
  "featuresMode": "all" // 开启全量评分分解展示
}

3. 验证评分分解显示

使用featuresMode=all参数(要求API版本≥2021-04-30),查询结果的@search.features字段会包含magnitude函数对QuantitySold的评分贡献,示例输出片段:

"@search.features": [
  {
    "name": "magnitude(QuantitySold)",
    "value": 6.0 // 对应你设置的boost值,根据销量在0-100000范围内线性计算
  },
  // 文本字段的权重匹配贡献也会同步显示
]

额外检查点

  • 确认评分配置的functionAggregation设置:你使用的sum会将文本匹配得分和销量的magnitude得分相加,符合需求。
  • 检查销量值范围:如果销量超过100000,constantBoostBeyondRange: true会让它获得最大boost值6;若销量低于0,会按0值计算权重。

内容的提问来源于stack exchange,提问作者Patrick Goode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 14:57:16