繁体   English   中英

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);

我得到以下响应,这是我试图获得的大部分内容,但是,查询下部的“总计”值没有产生结果。

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

在此处输入图像描述

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

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

我期望计数是返回数据集中所有点的总和值。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM