У меня есть индекс с именем socialmedia , и я пытаюсь создать запросы с этим полем с именем eng (пропущены некоторые ненужные поля)
"id" : "1",
"eng":
[
{
"soc_mm_score" : "3",
"date_updated" : "1520969306",
},
{
"soc_mm_score" : "1",
"date_updated" : "1520972191",
},
{
"soc_mm_score" : "4",
"date_updated" : "1520937222",
}
]
У меня есть много документов из этого индекса, которые содержат eng вложенное поле, которое также содержит множество "подобъектов"
Теперь моя главная цель состоит в том, что запрос Elasticsearch долженЯ формулирую, чтобы отфильтровать эти вложенные объекты
ШАГ 1
Получить вложенный объект с наибольшим date_updated значением
STEP2
После получения этих вложенных объектов выполните агрегирование sum , чтобы я мог добавить все значения поля soc_mm_score для соответствующего "последнего вложенного объекта"
Я пробовал этот запрос, но, похоже, он не работает
ATTEMPT # 1 (я использую APIasticsearch-php, поэтому, пожалуйста, поверьте моему запросу, чторабота с этим форматом)
'aggs' => [
'ENG' => [
'nested' => [
'path' => 'eng'
],
'aggs' => [
'FILTER' => [
'filter' => [
'bool' => [
'must' => [
[
// I'm thinking of using max aggregation here
]
]
]
]
]
'LATEST' => [
'top_hits' => [
'size' => 1,
'sort' => [
'eng.date_updated' => [
'order' => 'desc'
]
]
]
]
]
]
]
PRO / S: он возвращаетисправить вложенный объект CON / S: я не могу выполнить дальнейшие агрегации
Пример вывода

Затем я попытался добавить субагрегацию

Тогда это вывод 
Есть ли другие способы, которыми я могу это сделать?
Чтобы просмотреть мои идеальные шаги:
- Доступ к моему eng вложенному полю
- Цель / Фокус на eng вложенному полю
- Получить «последний» / самый последний элемент для этого eng вложенного поля (обозначается наибольшим значением его родственного элемента date_updated field)
- Теперь, после полученияэти «самые последние» вложенные элементы создают субагрегацию для своих вложенных полей, например: получение суммы soc_like_count или soc_share_count всех самых последних элементов eng field