如何在Microsoft Graph搜索查询中仅获取结果总计数?
关于Microsoft Graph搜索接口仅返回总计数的解决方案
目前Microsoft Graph的/v1.0/search/query接口没有提供直接参数可以完全移除响应中的hits字段,但可以通过以下方式实现近似需求:
方案:设置查询的top参数为0
在请求体中将top值设为0,这样接口返回的hits数组会是空的,同时total字段仍会正确返回搜索结果的总计数,既满足获取总计数的需求,又能大幅减少响应的数据量。
请求示例
POST https://graph.microsoft.com/v1.0/search/query Content-Type: application/json { "requests": [ { "entityTypes": ["listItem"], // 根据你的搜索目标调整实体类型(如site、driveItem等) "query": { "queryString": "covid" }, "top": 0 } ] }
响应示例
{ "value": [ { "searchTerms": [ "covid" ], "hitsContainers": [ { "hits": [], "total": 20, "moreResultsAvailable": false } ] } ], "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(microsoft.graph.searchResponse)" }
其他说明
- 如果需要彻底剔除
hits字段,只能在客户端接收响应后自行处理,忽略该字段即可。 - 确保请求的权限范围符合要求(如
Sites.Read.All等,根据搜索的实体类型调整)。
内容的提问来源于stack exchange,提问作者Mohammad Amer
相关产品推荐
相关产品推荐

