Elasticsearch - агрегирование максимального значения из вложенного документа
У меня есть тип документа, который имеет вложенное свойство, которое отслеживает определенные события, связанные с этим документом. event_type
свойство вложенного doc_event
Документ является последовательным, поэтому чем выше целочисленное значение, тем дальше в последовательности событий находится документ. Я хочу создать агрегацию, которая будет разбивать каждый my_doc
по максимуму event_type
значение, которое встречается между двумя датами.
{
"mappings": {
"my_doc": {
"properties": {
"doc_events": {
"type": "nested",
"properties": {
"event_type": { "type": "integer" },
"event_date": { "type": "date" }
}
}
}
}
}
}
Я пробовал варианты следующей агрегации, и она все еще не дает правильных результатов.
{
"size": 0,
"aggregations": {
"my_doc_events": {
"nested": {
"path": "doc_events"
},
"aggs": {
"event_types": {
"terms": { "field": "doc_events.event_types" },
"aggs": {
"date_range": {
"filter": {
"range": {
"doc_events.event_date": {
"gte": "2017-12-25"
}
}
},
"aggs": {
"my_docs": {
"reverse_nested": {},
"aggs": {
"latest_event": {
"top_hits": {
"sort": [{ "doc_events.event_type": "desc" }],
"size": 1
}
}
}
}
}
}
}
}
}
}
}
}
Как я могу достичь этой агрегации или это не совсем возможно?