2016-03-28 4 views
0

У меня есть запрос, который работает. Он объединяет данные на основе Id и находит объект MOST RECENT на основе созданного поля. Проблема у меня в том, что я хочу найти SECOND MOST RECENT вместо САМЫХ ПОСЛЕДНИХ. Как я могу это сделать? Я просматривал все документы, и все, что я могу найти, это диапазон, который мне не помогает. Спасибо :)Elasticsearch: Дата Агрегация Последние Последние

{ 
    "query":{ 
     "match": { 
     "name": "Robert" 
     } 
    }, 
    "aggs": { 
     "previous": { 
      "terms": { 
       "field": "Id", 
       "order": {"timeCreated": "desc"} 
      }, 
      "aggs": { 
       "timeCreated": { 
        "max": {"field": "created"} 
       } 

      } 
     } 
    } 
} 
+0

Что вы подразумеваете под самыми последними документами ?? Пожалуйста, уточните – Richa

+0

@ Richa, что я имею в виду, самое последнее относится к «проданному» полю, который я хотел бы получить последним с текущей даты. То, что я видел в документах, - это ограниченный диапазон времени, но я бы хотел, чтобы последнее из текущего времени выполняло поиск человека. – emarel

+0

@ Richa сообщите мне, если вам нужно больше разъяснений. Любая помощь будет оценена – emarel

ответ

1

Top_hits - это то, что вы ищете. Используйте это:

{ 
"query":{ 
    "match": { 
    "name": "A" 
    } 
}, 
"aggs": { 
    "previous": { 
     "terms": { 
      "field": "Id" 

     }, 
     "aggs": { 
      "latestRecords": { 
       "top_hits": { 
       "sort": { 
        "created": { 
        "order": "desc" 
        } 
       }, 
       "size" :2 
       } 
      } 
      } 
     } 
    } 
    } 
+0

это отлично работает, но без агрегатов он захватит только второй самый последний Роберт. Я хотел бы найти второго самого последнего Роберта из каждого Идентификатора. Как я могу расширить свое решение, чтобы соответствовать необходимости найти второго самого последнего Роберта из каждого Идентификатора. – emarel

+0

Обновлен мой ответ согласно вашему требованию. Посмотрите, работает ли это для вас. – Richa

+0

Это работает отлично! Ты потрясающий и серьезно просто сделал свой день :) Я был даже шокирован тем, что он вернул весь объект, а не только Ключ и граф. Это связано с функцией top_hits? Во всяком случае, большое спасибо! – emarel

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