Hap*_*der 1 elasticsearch range-query elasticsearch-aggregation
我需要根据日期(在此处添加字段)过滤一组值,然后将其分组device_id。所以我正在使用以下内容:
{
"aggs":{
"dates_between":{
"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"
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这"Failed to parse source"在执行查询时给我一个错误。这是正确的做法吗?
如果仅执行日期汇总,则显示的值不在指定的日期范围内
另一种方法dates_between是嵌套聚合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"
}
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
您也可以将过滤器移至查询中:
{
"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"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4516 次 |
| 最近记录: |