有一个名为ip的字段,它映射到ip类型,现在我想将aggs作为/ 24个子网,我使用脚本" doc [' ip']。value& 0xffffff00"获取ip的长值,如何将其转换为ip string ???
{
"_source": [
"host",
"ip"
],
"aggs": {
"ip_subnet": {
"terms": {
"script": "doc['ip'].value & 0xffffff00"
}
}
},
"size": 0
}
我没有从弹性网站上找到任何结果,我想知道是否有另一种方式来接收子网aggs?
非常感谢,原谅我的游泳池英语;)
答案 0 :(得分:0)
最后,我完成了定义一个longToIp类似的脚本......也许还有另一个好的解决方案......
"aggs": {
"ip_subnet": {
"terms": {
"script": "ip=doc['ip'].value & 0xffffff00;octet3 = (int) ((ip >> 24) % 256);octet2 = (int) ((ip >> 16) % 256);octet1 = (int) ((ip >> 8) % 256);octet0 = (int) ((ip) % 256);ipstr=octet3 + '.' + octet2 + '.' + octet1 + '.' + octet0;return ipstr+\"/24\";"
}
}
},