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

MS Graph聚合查询时拼写修正失效,如何调整请求?

解决MS Graph /search/query聚合与拼写检查兼容问题

问题原因

当请求包含aggregations配置时,MS Graph的拼写修正仅会在返回结果中给出修正建议,但不会自动将修正后的查询应用到聚合计算逻辑中。聚合仍基于原始错误查询(如"inspring")执行,自然返回0条结果。

解决步骤

1. 先获取拼写修正后的查询内容

发送不带聚合配置的搜索请求,从响应的queryContext字段里提取alteredQuery(即系统修正后的正确查询字符串)。
示例请求:

POST https://graph.microsoft.com/v1.0/search/query
Content-Type: application/json

{
  "requests": [
    {
      "entityTypes": ["listItem"],
      "query": {
        "queryString": "inspring"
      },
      "enableSpellCheck": true
    }
  ]
}

响应中会包含修正后的查询信息:

"queryContext": {
  "originalQuery": "inspring",
  "alteredQuery": "inspiring",
  "alterationType": "Spelling"
}

2. 用修正后的查询发起带聚合的请求

将第一步得到的alteredQuery作为新的查询字符串,搭配聚合配置发送请求,此时聚合会基于修正后的正确查询执行,同时拼写修正提示也会保留在响应中。
示例请求:

POST https://graph.microsoft.com/v1.0/search/query
Content-Type: application/json

{
  "requests": [
    {
      "entityTypes": ["listItem"],
      "query": {
        "queryString": "inspiring"
      },
      "enableSpellCheck": true,
      "aggregations": [
        {
          "field": "createdBy.displayName",
          "size": 5,
          "bucketDefinition": {
            "type": "terms"
          }
        }
      ]
    }
  ]
}

额外说明

如果需要在前端展示拼写修正提示,可保留第一步响应中的修正信息,同时用修正后的查询获取聚合和结果数据,实现两个功能的兼容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 19:54:41