Elasticsearch聚合查询【 查询统计攻击源IP前十所在的省份和城市】
业务需求:
需要从索引数据中查询,攻击源IP(src_ip)统计前十的所在地。
查询语句:
{
"query": {
"match_all": {}
}
,"aggs": {
"src_ip_city": {
"terms": {
"field": "src_ip",
"size": 10
},
"aggs": {
"city": {
"terms": {
"field": "src_city",
"size": 1
}
}
}
}
,"src_ip_region": {
"terms": {
"field": "src_ip",
"size": 10
},
"aggs": {
"city": {
"terms": {
"field": "src_region",
"size": 1
}
}
}
}
}
}
查询结果:
这样就获得了攻击源ip 统计前十所在的省份和城市信息
因为我知道数据源里面每个ip的省份和城市必定只有一个,所以使用默认的深度查询