2

我想聚合keyword位于类型字段内的nested类型字段。嵌套字段的映射如下:

"Nested_field" : {
    "type" : "nested",
    "properties" : {
        "Keyword_field" : {
            "type" : "keyword"
        }
    }
}

我用来聚合的查询部分如下:

"aggregations": {
    "Nested_field": {
        "aggregations": {
            "Keyword_field": {
                "terms": {
                    "field": "Nested_field.Keyword_field"
                }
            }
        },
        "filter": {
            "bool": {}
        }
    },
}

但这并没有返回正确的聚合。即使存在Keyword_field价值现有的文档,查询也会返回 0 个存储桶。所以,我的聚合查询有问题。谁能帮我找出问题所在?

4

1 回答 1

10

我认为您需要在其中提供嵌套路径。这在 ES 5 中有效,但看起来你使用的是基于“聚合”与“聚合”的 6,所以如果它不起作用,请告诉我,我会放弃这个答案。试试这个:

{
    "aggregations": {
        "nested_level": {
            "nested": {
                "path": "Nested_field"
            },
            "aggregations": {
                "keyword_field": {
                    "terms": {
                        "field": "Nested_field.Keyword_field"
                    }
                }
            }
        }
    }
}
于 2017-12-07T17:16:14.760 回答