我有一个字段,它在映射中定义为:
"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]"
}
}
我希望这并不意味着ES不支持ip_range
的聚合?或者,如果是这样的话,如何才能做到呢?
更新
正如我所说的,到目前为止,任何在其他类型(包括ip
类型)上工作的聚合都不适用于ip_range
。
下面是一些例子:
{
"size": 0,
"aggs": {
"routes": {
"range": {
"field": "route",
"ranges": [
{"to": "10.0.0.0/32"}
]
}
}
}
}
{
"size": 0,
"aggs": {
"routes": {
"terms": {
"field": "route",
"size": 50
}
}
}
}
如果有人能向我指出一个在ip_range
上工作的聚合,那将是有帮助的!
发布于 2019-05-17 08:00:27
对于ip_range
字段类型有一个特定的range
聚合,即不使用range
聚合(仅用于数值类型)和terms
(仅用于数值和关键字类型):
GET /ip_addresses/_search
{
"size": 10,
"aggs" : {
"routes" : {
"ip_range" : {
"field" : "route",
"ranges" : [
{"to": "10.0.0.0/32"}
]
}
}
}
}
https://stackoverflow.com/questions/56178277
复制相似问题