Сортировка результатов агрегации в Elasticsearch и фильтрация - PullRequest
0 голосов
/ 03 февраля 2019

Выборка данных в индексе 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" }
               }
            }
         }
      }
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...