Выборка данных в индексе Elasticsearch:
"_source": {
"Type": "SELL",
"Id": 31,
"status": "YES",
"base": "FIAT",
"orderDate": "2019-02-01T05:00:00.000Z",
}
Мне нужно 1. Отфильтровать записи на основе 'base' =?и "Тип" =?THEN 2. получить верхнюю часть стека или последние записи для этих отфильтрованных записей для каждого Id и THEN 3. из результатов этих операций мне нужны только записи со статусом = YES.
Elasticsearch query Iписал (а):
{
"size":0,
"query":{
"bool":{
"must":[
{ "match":{ "base":"FIAT" } },
{ "match":{ "Type":"SELL" } }
]
}
},
"aggs":{
"sources":{
"terms":{ "field":"Id" },
"aggs":{
"latest":{
"top_hits":{
"size":1,
"_source":{
"includes":[
"Id",
"orderDate",
"status"
]
},
"sort":{ "orderDate":"desc" }
}
}
}
}
}
}