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

Elasticsearch如何配置查询仅返回aggregations聚合结果不返回原始文档

解决方案

你之前调整_source参数不生效的核心原因是:_source仅能控制返回的原始命中文档(hits数组内的文档)包含哪些字段,无法关闭原始命中文档的返回逻辑。
要让响应仅返回aggregations聚合对象,只需要在查询请求的最外层加上"size": 0配置即可:

  • 这个参数的作用是控制返回的原始匹配文档条数,设置为0时,ES会直接跳过原始文档的召回、结果组装流程,响应载荷里就不会再携带多条完整的原始文档,仅返回你定义的聚合结果。

查询示例

以按指定字段去重取文档的场景为例,完整查询写法如下:

POST 你的索引名/_search
{
  "size": 0,
  "query": {
    // 替换为你实际使用的查询过滤条件
    "match_all": {}
  },
  "aggs": {
    "distinct_result": {
      "terms": {
        "field": "你用来做去重判断的字段名",
        "size": 200 // 配置需要返回的去重结果总条数
      },
      "aggs": {
        "target_doc": {
          "top_hits": {
            "size": 1,
            // 这里可以按需配置每个去重分组下返回的文档字段,不需要的字段可以不写
            "_source": ["title", "content", "create_time"]
          }
        }
      }
    }
  }
}

补充说明:如果你使用的是Elasticsearch 7.0以上版本,也可以用collapse折叠参数实现字段去重,但如果需求是仅返回聚合结果、完全不展示外层原始命中列表,size: 0是全版本通用的兼容方案,没有版本兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 07:54:25