SELECT
max( timestamp ) AS first_time,
min( timestamp ) AS last_time,
src_ip,
threat_target ,
count(*) as count
FROM
traffic
GROUP BY
src_ip,
threat_target
ORDER BY
first_time desc
LIMIT 0 ,10
我想得到这个结果,但我不知道怎么得到 limit size
在哪里使用 sort
```
{
"size": 0,
"aggregations": {
"src_ip": {
"aggregations": {
"threat_target": {
"aggregations": {
"last_time": {
"max": {
"field": "timestamp
"
}
},
"first_time": {
"min": {
"field": "timestamp
"
}
}
},
"terms": {
"field": "threat_target.keyword"
}
}
},
"terms": {
"field": "src_ip.keyword"
}
}
}
}
1条答案
按热度按时间y4ekin9u1#
在ElasticSearch中通常不支持聚合分页,但是,复合聚合提供了一种对聚合分页的方法。
与其他多bucket聚合不同,复合聚合可用于有效地对多级聚合中的所有bucket进行分页。
摘自复合聚合es文档。
check:this
除了“order by first\u time desc”,下面的查询应该可以正常运行。我不认为除了分组字段(src\u ip,threat\u target)之外的任何字段都可以排序。