首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ElasticSearch: ip_range类型的聚合

ElasticSearch: ip_range类型的聚合
EN

Stack Overflow用户
提问于 2019-05-17 00:58:04
回答 1查看 251关注 0票数 0

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

代码语言:javascript
运行
复制
"route": {
  "type": "ip_range"
}

它工作得很好,当我查询ES时,我看到了结果:

代码语言:javascript
运行
复制
"_source": {
  "ip": "65.151.40.164",
  "route": "65.151.40.0/22",
  ...
}

现在,我想对这个领域做一些聚合,我尝试的几乎所有的事情都是这样的错误:

代码语言:javascript
运行
复制
"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]"
  }
}

我希望这并不意味着ES不支持ip_range的聚合?或者,如果是这样的话,如何才能做到呢?

更新

正如我所说的,到目前为止,任何在其他类型(包括ip类型)上工作的聚合都不适用于ip_range

下面是一些例子:

代码语言:javascript
运行
复制
{
  "size": 0,
  "aggs": {
    "routes": {
      "range": {
        "field": "route",
        "ranges": [
            {"to": "10.0.0.0/32"}
        ]
      }
    }
  }
}
代码语言:javascript
运行
复制
{
  "size": 0,
  "aggs": {
    "routes": {
      "terms": {
        "field": "route",
        "size": 50
      }
    }
  }
}

如果有人能向我指出一个在ip_range上工作的聚合,那将是有帮助的!

EN

回答 1

Stack Overflow用户

发布于 2019-05-17 08:00:27

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

代码语言:javascript
运行
复制
GET /ip_addresses/_search
{
    "size": 10,
    "aggs" : {
        "routes" : {
            "ip_range" : {
                "field" : "route",
                "ranges" : [
                    {"to": "10.0.0.0/32"}
                ]
            }
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56178277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档