Я пишу запрос для подсчета документов, сгруппированных по modifyDateTime. Этот запрос работает нормально, как показано ниже
{
"aggs" : {
"types_count" : {
"value_count" : { "field" : "id" }
},
"group_by_status": {
"terms": {
"field": "status.keyword"
}
}
}
}
Этот запрос дает мне правильные сегменты, как показано ниже
"buckets": [
{
"key": "STARTED",
"doc_count": 579873
},
{
"key": "SENT",
"doc_count": 363026
},
Теперь наш процесс таков, что после запуска его состояние запускается, затем идет его отправка, затем идет AWATING_RESPONSE, затем он переходит в состояние «ЗАВЕРШЕНО», и каждый раз, когда процесс переходит в следующее состояние, его версия увеличивается.
Таким образом, по существу, с помощью вышеприведенного запроса я считаю все процессы, находящиеся в другом состоянии, но хитрость здесь в том, что запущенный процесс также считается в SENT, поскольку это тот же процесс с другой версией.
Теперь, как я хочу создать запрос, это предоставить мне счетчик для всех различных заявленных, но он должен учитывать только последнюю версию, а не все версии.
Я пробовал что-то вроде ниже
{
"aggs" : {
"types_count" : {
"value_count" : { "field" : "id" }
},
"aggs" : {
"max_version" : { "max" : { "field" : "version" } }
},
"group_by_status": {
"terms": {
"field": "status.keyword"
}
}
}
}
но это дает мне эту ошибку
"root_cause": [
{
"type": "named_object_not_found_exception",
"reason": "[7:27] unable to parse BaseAggregationBuilder with name [max_version]: parser not found"
}
]
Каким образом это может быть достигнуто?