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

Elasticsearch聚合查询统计最新批次文件失败数问题求助

问题原因

你当前查询的逻辑存在顺序错误:先按@timestamp分组取最新的单个时间戳对应的文档桶,这一步只会命中最新上传的那1个文件(batch_b的file_1),同批次另一个上传时间稍早的文件被直接过滤掉,自然统计不到全量的失败数。


正确实现思路

应该先按批次分组,计算每个批次的最晚上传时间,取最晚时间对应的批次(即最新上传批次),再统计该批次下的所有失败文件数,对应DSL如下:

GET my-index/_search
{
  "size": 0,
  "aggs": {
    "batch_group": {
      "terms": {
        "field": "batch_id.keyword",
        "order": { "batch_max_time": "desc" },
        "size": 1
      },
      "aggs": {
        "batch_max_time": {
          "max": {
            "field": "@timestamp"
          }
        },
        "failure_count": {
          "filter": {
            "term": {
              "status.keyword": "failure"
            }
          }
        }
      }
    }
  }
}

结果说明

返回的聚合结果中,batch_group桶下的failure_count.doc_count就是最新批次的失败文件总数,按你给出的示例数据会返回2,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 13:36:03