{
"date": "2015-06-25T17:20:20",
"ip": "192.138.63.233",
"ec": "106023",
"sip": "160.141.161.137",
"sport": "57735",
"dip": "128.44.113.244",
"dport": "389",
"proto": "udp",
"bytesin": 125,
"bytesout": 250
}
{
"date": "2015-06-25T17:20:20",
"ip": "192.138.63.233",
"ec": "106023",
"sip": "160.141.162.162",
"sport": "53576",
"siface": "inside",
"dip": "160.141.147.78",
"dport": "389",
"proto": "udp",
"bytesin": 225,
"bytesout": 550
}
我对Elastic Search有点新,我们希望在上面的索引文档上运行一些聚合。
我们的目的是获得前10个“dip”字段,这些字段具有“bytesin”数据的最大总和。 我在sql中的查询将类似于“从表组中选择dip,sum(bytesin)数据by dip order by sum(bytesin)desc”。
currently I am running below GET request in Elastic Search but it is not providing what exactly the above sql query gives.
"aggs": {
"top-sip": {
"terms": {
"field": "dip",
"size": 10,
"order": {
"totalbytes": "desc"
}
},
"aggs": {
"totalbytes": {
"sum": {
"field" : "bytesin"
}
}
}
}
}
上面的聚合检索了与doc_count相关的前10个“dips”,然后它聚合了那些顶部“dips”的“bytesin”字段。
但我期望(sql查询)是,将“dips”分组并聚合分组dip的“bytesin”字段。最后,它相对于sum(bytesin)检索前10个下降。这是一种覆盖字段“doc_count”的默认聚合的方法。对于我的用例,确定消耗最高带宽所涉及的顶部倾角(此处为bytesin字段)。
任何人都可以建议我如何执行聚合以获得预期的结果。