来自java脚本字段的Elasticsearch聚合

时间:2015-07-29 09:16:12

标签: elasticsearch

为简单起见,假设我有两个字段:TRIP_START_DATE(日期格式)和TRIP_NIGHTS。

我可以运行一个简单的聚合,它将日期转换为一周的日期:

aggs <- '{
        "aggs": {
          "dept": {
            "filter": {
              "range": {
                "TRIP_START_DATE": {
                  "gte": "2014-01-01",
                  "lte": "2014-12-31"
                }
              }
            },
            "aggs": {
              "weekday": {
                "terms": {
                  "script": "Date date = new Date(doc[\'TRIP_START_DATE\'].value) ; java.text.SimpleDateFormat format = new java.text.SimpleDateFormat(\'EEE\');format.format(date)" 
                }
              }
            }
          }
        }
      }'

是否可以添加另一个聚合,每个工作日返回平均TRIP_NIGHTS?

感谢您的帮助。

卡洛斯

1 个答案:

答案 0 :(得分:0)

我主要通过反复试验找到答案:

aggs <- '{
        "aggs": {
          "dept": {
            "filter": {
              "range": {
                "TRIP_START_DATE": {
                  "gte": "2014-01-01",
                  "lte": "2014-12-31"
                }
              }
            },
            "aggs": {
              "weekday": {
                "terms": {
                  "script": "Date date = new Date(doc[\'TRIP_START_DATE\'].value) ; java.text.SimpleDateFormat format = new java.text.SimpleDateFormat(\'EEE\');format.format(date)" 
                },
                "aggs": {
                  "stay": {
                    "percentiles": {
                      "script": "doc[\'TRIP_NIGHTS\'].value",
                        "percents": [
                          50
                      ]
                    }
                  }
                }
              }
            }  
          }
        }
      }'

卡洛斯