Aggregate Date Range filtered values in elastic search
It is the other way around dates_between
is a nested aggregation of group_by_device_id
"aggs": { "group_by_device_id": { "terms": { "field": "device_id" }, "aggs": { "dates_between": { "filter": { "range": { "added": { "gte": "2014-07-01 00:00:00", "lte": "2014-08-01 00:00:00" } } } } } }}
You could also move the filter into the the query:
{ "query": { "filtered": { "query": { "match_all": {} }, "filter": { "range": { "added": { "gte": "2014-07-01 00:00:00", "lte": "2014-08-01 00:00:00" } } } } }, "aggs": { "group_by_device_id": { "terms": { "field": "device_id" } } }}