2013-07-12 4 views
1

Кто-нибудь знает, есть ли способ построить запрос elasticsearch, который сортирует массив по дате и запрашивает только самый младший элемент? Для того, чтобы продемонстрировать, что я имею в виду, вот пример моих данных:Найти только самый младший элемент в массиве

[{ 
    _id: "51cd3ae45b99bd960ee0b425", 
    name: "Example entry", 
    documents: [ 
     { 
      title: "Document Title 1", 
      subDocuments: [ 
       { 
        date: "Mon Jul 08 2013 12:14:04 GMT+0200 (CEST)", 
        title: "start working" 
       }, 
       { 
        date: "Fri Jul 11 2013 12:14:04 GMT+0200 (CEST)", 
        title: "finished" 
       }, 
       { 
        date: "Thu Jul 10 2013 12:14:04 GMT+0200 (CEST)", 
        title: "working" 
       } 
      ] 
     } 
    ] 
}, { 
    _id: "51cd3ae45b99bd960ee0b426", 
    name: "Example entry 2", 
    documents: [ 
     { 
      title: "Document Title 1", 
      subDocuments: [ 
       { 
        date: "Mon Jul 08 2013 12:14:04 GMT+0200 (CEST)", 
        title: "start working" 
       }, 
       { 
        date: "Fri Jul 11 2013 12:14:04 GMT+0200 (CEST)", 
        title: "working" 
       } 
      ] 
     } 
    ] 
}] 

В этих данных я хочу запросить значение «рабочего». Как вы можете видеть, первый документ имеет заголовок субдокумента, завершенный в его последнем статусе, чтобы этот документ не был разрешен в результирующем наборе.

Может ли кто-нибудь дать мне подсказку, как создать запрос, чтобы мои требования были выполнены? Или это невозможно в настоящее время и должно быть разработано в клиентском коде?

Спасибо и привет Керстны

ответ

Смежные вопросы