ElasticSearch 术语聚合仅在我使用脚本指定字段时才有效



以下聚合返回的存储桶如我所期望的那样:

{
"size": 0,
"aggs": {
"my_agg": {
"terms": {
"script": {
"inline": "arrayField.innerArrayField.property"
}
}
}
}

此聚合似乎应该返回同一组存储桶,但不返回任何内容:

{
"size": 0,
"aggs": {
"my_agg": {
"terms": {        
"field": "arrayField.innerArrayField.property"        
}
}
}

}

类型映射的相关部分:

"arrayField": {
"type": "nested",
"properties": {
"innerArrayField": {
"type": "nested",
"properties": {
"property": {
"type": "string"
}
}}

这是怎么回事?

您的映射类型是nested,因此您也应该首先使用嵌套聚合。脚本不是访问存储在 ES 中的嵌套文档,而是从 JSON 源动态提取数据,这很慢,因为每次点击都必须完成。

最新更新