DSL查询:五分钟窗口中的每秒销售额

时间:2017-08-24 09:37:43

标签: elasticsearch dsl

我试图将总销售额除以300秒,以便在五分钟内获得每秒销售额

到目前为止,我只能在此处构建查询。似乎没有办法对“total_value_five_mins”进行划分。

我的弹性搜索版本是2.3

尝试过所有的弹性搜索文档无法理解单个文档。

{ 
  "size": 0,
  "query": {   
    "aggs" : {
        "five_minute_data" : {
            "date_histogram" : {
                "field" : "timestamp",
                "interval" : "5m"
            },
            "aggs": {
              "total_value_five_mins": {
                "sum": {
                  "field": "sales"
                }
              }
            }

        }
    }
}

1 个答案:

答案 0 :(得分:1)

您可以在sum汇总中使用脚本,如下所示:

{ 
  "size": 0,
  "query": {   
    "aggs" : {
        "five_minute_data" : {
            "date_histogram" : {
                "field" : "timestamp",
                "interval" : "5m"
            },
            "aggs": {
              "total_value_five_mins": {
                "sum": {
                  "script": {
                     "inline": "doc.sales.value / 300"
                  }
                }
              }
            }

        }
    }
}