【问题标题】:How to aggregate one index of an array field in Elasticsearch如何在 Elasticsearch 中聚合数组字段的一个索引
【发布时间】:2015-11-05 02:49:33
【问题描述】:

我的文档如下所示:

{  
    "clientId": "FPIev_86RwB",
    "viewId": "FPIewF1aRyU",
    "sessionId": "FPIewE16Rxu",
    "trackingId": "FPIewHfaRx9",
    "type": "view",
    "intVal": [  
        21,
        72,
        37
    ]
}

我想在一组文档中仅对数组的一个索引进行不同的聚合(例如 sum 或 avg)。但是,似乎我无法像在对象上指定字段那样指定索引。这是我尝试过的:

{
    "size": 0,
    "aggs": {
        "avg_1": {
            "avg": {
                "field": "intVal.1"
            }
        }
    }
}

如您所见,我尝试使用intVal.1 选择字段的索引,但这不起作用。我有可变数量的值可以添加到数组中,但是特定索引位置中的值都是相同的,所以我想对数组索引进行聚合。有什么办法可以完成这项工作吗?

【问题讨论】:

    标签: elasticsearch aggregation


    【解决方案1】:

    我找到了一个使用脚本的解决方案。查询如下所示:

    {
        "size": 0,
        "aggs": {
            "avg_1": {
                "avg": {
                    "script": "doc['intVal'][1].value"
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-12-20
      • 2022-01-14
      • 2021-04-25
      • 1970-01-01
      • 2021-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多