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

如何确定Cognitive Search查询所匹配的字段名称?

在Azure Cognitive Search中识别查询匹配的字段名称

要确定查询匹配了哪些自定义文本字段,你可以用以下几种实用方法:

方法1:启用高亮(Highlighting)功能

这是最直接的方式,开启后搜索响应会明确返回包含匹配内容的字段名,以及对应的高亮片段。

配置方式

在查询请求中添加以下参数:

  • highlight:指定要检查的自定义字段列表(比如highlight=product_desc,user_review,faq_content)
  • highlightPreTag 和 highlightPostTag:自定义高亮标记(比如用<mark>和</mark>)

示例响应片段

响应中的@search.highlights字段会列出所有匹配的字段及对应内容:

{
  "value": [
    {
      "@search.score": 2.345,
      "@search.highlights": {
        "product_desc": ["这款<mark>无线耳机</mark>续航可达30小时"],
        "user_review": ["<mark>无线耳机</mark>的音质超出预期"]
      },
      "product_desc": "这款无线耳机续航可达30小时,支持主动降噪",
      "user_review": "无线耳机的音质超出预期,佩戴舒适",
      "faq_content": "如何连接无线耳机?请打开蓝牙..."
    }
  ]
}

从@search.highlights里就能直接看到product_desc和user_review是匹配的字段。

方法2:使用字段级计分详情(Debug模式)

如果需要更底层的匹配逻辑信息,可以开启查询的调试模式,查看每个字段对搜索得分的贡献,间接判断哪些字段参与了匹配。

配置方式

在查询中添加debug=true参数,响应会包含@search.debug字段,其中的scoringStatistics会列出每个字段的计分权重和匹配贡献。

示例响应片段

{
  "@search.debug": {
    "scoringStatistics": {
      "product_desc": {
        "termFrequency": 2,
        "scoreContribution": 1.8
      },
      "user_review": {
        "termFrequency": 1,
        "scoreContribution": 0.545
      }
    }
  }
}

得分贡献不为0的字段就是匹配的字段。

方法3:逐个字段定向查询(适合小范围测试)

如果你的自定义字段数量不多,可以通过searchFields参数逐个指定查询的字段,结合返回结果的得分来判断哪个字段有匹配。

比如先查询searchFields=product_desc&search=无线耳机,如果返回结果且得分较高,说明该字段有匹配;再依次测试其他字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 00:37:13