Elasticsearch:如何计算其他聚合中的聚合结果

时间:2019-08-09 11:07:10

标签: elasticsearch

我想用另一个汇总的结果进行计算。这是我的查询,但不幸的是我不能这样做。 还有其他解决方案吗? 现在,我可以将“ HISTOGRAM_VALUE_SUM”放在“ CURRENT”中,但在那种情况下,结果将按date_range缩小。

{
  "size": 0,
  "aggregations": {
    "calculations": {
      "filter": {
        "bool": {
          "must": []
        }
      },
      "aggregations": {
        "HISTOGRAM_VALUE_SUM": {
          "date_histogram": {
            "field": "time",
            "interval": "7d",
            "extended_bounds": {
              "min": "now/d-30d",
              "max": "now/d"
            }
          },
          "aggregations": {
            "VALUE_SUM": {
              "sum": {
                "field": "deltas.value"
              }
            }
          }
        },
        "ANOTHER_VALUE": {
          "max_bucket": {
            "buckets_path": "HISTOGRAM_VALUE_SUM>VALUE_SUM"
          }
        },
        "CURRENT": {
          "date_range": {
            "field": "time",
            "ranges": [
              {
                "from": "now/d-3d",
                "to": "now/d"
              }
            ]
          },
          "aggregations": {
            "value": {
              "sum": {
                "field": "value"
              }
            },
            "result": {
              "bucket_script": {
                "buckets_path": {
                  "value": "value",
                  "another_value": "ANOTHER_VALUE"  <===== 
                },
                "script": {
                  "source": "params.value / params.another_value",
                  "lang": "painless"
                }
              }
            }
          }
        }
      }
    }
  }
}```

0 个答案:

没有答案