Работа над Elasticsearch 6.4.
Мой индекс полон документов, имеющих group_id
.
Я хочу сгруппировать по group_id
, а затем агрегировать в каждой группе пологическое значение для active
.Я хочу вернуть истину, если какой-либо документ в группе активен.(Я думаю, что я могу сделать это с агрегацией max
, поскольку логическое значение active
возвращает 1 для true и 0 для false для каждого документа.
Затем Я хочусделайте подсчет групп, которые являются «активными».
Итак, в конце дня я просто хочу целое число. Что ж, в будущем я захочу повторить процесс для некоторого другого логического значениязначения.
Вот что я пробовал:
{
"query": {
"bool": {
"must": [
{
"terms": {
"my_filter_terms": [
"foo",
"bar"
]
}
}
]
}
},
"_source": {
"includes": [],
"excludes": []
},
"aggregations": {
"group_by_group_id": {
"terms": {
"field": "group_id",
"size": 10000,
"min_doc_count": 1
},
"aggregations": {
"group_active": {
"max": {
"field": "active"
}
},
"count_total": {
"filters": {
"filters": {
"total": {
"exists": {
"field": "group_id"
}
},
"active": {
"term": {
"group_active": true
}
}
}
}
}
}
}
}
}