Elasticsearch 查询未返回求和字段的总值

Elasticsearch query is not returning a total value of a summed field

我有以下 elasticsearch 查询。它作为 AWS Amplify 无服务器后端的一部分执行。

const elasticBody = {
    ...defaultBody,
    aggs: {
      points: {
        date_histogram: {
          field: "createdAt",
          interval: "day",
        },
        aggs: {
          points: {
            sum: {
              field: "points",
            },
          },
        },
      },
      total: {
        sum: {
          field: "points",
        },
      },
    },
  };

  const data = await search(index, elasticBody);

我收到以下响应,这是我试图获得的大部分内容,但是,查询下部的 'total' 值未产生结果。

我一直在仔细研究 Elasticsearch 文档,但找不到解决方案。

我期待响应中的以下结构。

count: x,
data: [{...}],

我原以为计数是返回数据集中所有点的总和值。

您需要使用 Sum Bucket Aggregation 来获取 return 存储桶响应的总和。请检查以下查询:

"aggs": {
    "points": {
      "date_histogram": {
        "field": "createdAt",
        "interval": "day"
      },
      "aggs": {
        "points": {
          "sum": {
            "field": "points"
          }
        }
      }
    },
    "total":{
      "sum_bucket": {
        "buckets_path": "points>points"
      }
    }
  }