簡體   English   中英

如何在Elasticsearch中聚合數組字段的一個索引

[英]How to aggregate one index of an array field in Elasticsearch

我有如下文件:

{  
    "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選擇字段的索引,但這不起作用。 我可以將可變數量的值添加到數組中,但是特定索引位置中的值都是出於同一目的,因此我想對數組索引進行匯總。 有什么辦法可以使這項工作嗎?

我找到了使用腳本的解決方案。 查詢如下所示:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM