[英]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.