{ "from": 0, "size": 110000, "query": { "bool": { "must": [ { "match": { "deviceid": 27143 } }, { "match": { "monkey": 46 } }, { "range": { "createtime": { "gte": "2023-03-14", "lt": "2023-06-14 23:59:59" } } } ] } }, "aggs": { "group_by_date": { "date_histogram": { "field": "createtime", "interval": "1d", "format": "yyyyMMdd" }, "aggs": { "max_id": { "max": { "field": "id" } }, "mon_value": { "top_hits": { "size": 1, "_source": "monvalue" } } } } }}查询的结果monvalue的值对应的不是最大id对应的monvalue的值,要如何修改
时间: 2023-07-19 10:46:37 浏览: 80
要获取monvalue的最大值对应的最大id,可以使用以下查询语句:
```
{
"from": 0,
"size": 0,
"query": {
"bool": {
"must": [
{
"match": {
"deviceid": 27143
}
},
{
"match": {
"monkey": 46
}
},
{
"range": {
"createtime": {
"gte": "2023-03-14",
"lt": "2023-06-14 23:59:59"
}
}
}
]
}
},
"aggs": {
"max_monvalue": {
"max": {
"field": "monvalue"
}
},
"max_id": {
"terms": {
"field": "monvalue",
"order": {
"_term": "desc"
},
"size": 1
},
"aggs": {
"max_id": {
"max": {
"field": "id"
}
}
}
}
}
}
```
这个查询首先使用一个bool查询来过滤符合条件的文档,然后使用两个聚合来获取monvalue的最大值以及对应的最大id。第一个聚合使用max聚合来获取monvalue的最大值,第二个聚合使用terms聚合来获取monvalue等于最大值的文档,并使用max聚合来获取最大id。注意,这个查询中"size": 0是为了避免返回文档内容。
阅读全文