覆盖基于doc_count的聚合的方法

时间:2015-09-18 09:45:12

标签: elasticsearch

{
 "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字段)。

任何人都可以建议我如何执行聚合以获得预期的结果。

0 个答案:

没有答案