Elasticsearch中如何计算parent字段的总和?

How to calculate the sum amount of parent field in Elasticsearch?

您好,我已经在 elasticsearch 中对数据进行了非规范化处理。

例如

{childId: 123, childAmount: 3.4, parentId: 1, parentAmount: 5.6}
{childId: 234, childAmount: 4.4, parentId: 1, parentAmount: 5.6}
{childId: 345, childAmount: 5.4, parentId: 2, parentAmount: 1.2}

看到有 3 个 children 和 2 个相同 parent。 如何计算parentAmount(应该是6.8)的总金额?

谢谢。如果可能,如何使用 kibana metric visual 来显示这些数据?

在 Kibana 中,您可以使用指标可视化来做到这一点:

使用这样的查询:

{
  "size": 0,
  "aggs": {
    "per_parent": {
      "terms": {
        "field": "parentId",
        "size": 25
      },
      "aggs": {
        "max": {
          "max": {
            "field": "parentAmount"
          }
        }
      }
    },
    "sum_amounts": {
      "sum_bucket": {
        "buckets_path": "per_parent>max"
      }
    }
  }
}