ElasticSearch:ip_range类型的聚合

时间:2019-05-17 00:58:04

标签: elasticsearch

我有一个在映射中定义为的字段:

257

它运作良好,当我查询ES时,我会看到结果:

//leading zeros should be removed

现在,我想对该字段进行一些汇总,而我尝试的几乎所有内容最终都会出现此错误:

"route": {
  "type": "ip_range"
}

我希望这并不意味着ES不支持"_source": { "ip": "65.151.40.164", "route": "65.151.40.0/22", ... } 的聚合吗?或者,如果可以,怎么办?

更新

正如我所说,到目前为止,适用于其他类型(包括"caused_by": { "type": "illegal_argument_exception", "reason": "Fielddata is not supported on field [route] of type [ip_range]", "caused_by": { "type": "illegal_argument_exception", "reason": "Fielddata is not supported on field [route] of type [ip_range]" } } 类型)的任何聚合都不适用于ip_range

一些例子:

ip
ip_range

如果任何人都可以指出我在{ "size": 0, "aggs": { "routes": { "range": { "field": "route", "ranges": [ {"to": "10.0.0.0/32"} ] } } } } 上进行 的汇总工作,将很有帮助!

1 个答案:

答案 0 :(得分:0)

ip_range字段类型有一个特定的ip_range聚合,即不要使用range聚合(仅用于数字类型)和terms(仅用于数字和关键字类型):

GET /ip_addresses/_search
{
    "size": 10,
    "aggs" : {
        "routes" : {
            "ip_range" : {
                "field" : "route",
                "ranges" : [
                    {"to": "10.0.0.0/32"}
                ]
            }
        }
    }
}