Дата сортировки для разных значений определенного поля в одиночном запросе - PullRequest
0 голосов
/ 21 января 2019

Допустим, у меня есть следующее содержание в индексе.

{ date : 2019-01-21T08:20:18.962Z , student : "A", "City": "city1" }
{ date : 2019-01-21T08:20:55.962Z , student : "A", "City": "city1" }
{ date : 2019-01-21T08:29:20.962Z , student : "B", "City": "city1" }
{ date : 2019-01-21T08:20:10.962Z , student : "A", "City": "city1" }
{ date : 2019-01-21T08:29:21.962Z , student : "B", "City": "city1" }

Я хочу получить самую последнюю дату для студента A и Студента B в одном запросе, чтобы я получил следующий вывод:

{ date : 2019-01-21T08:20:55.962Z , student : "A", "City": "city1" }
{ date : 2019-01-21T08:29:21.962Z , student : "B", "City": "city1" }

Я знаю, что сортировка по дате и подача заявки должны соответствовать ученику: «А» даст мне самую последнюю дату для ученика А, и, как мудро для ученика Б. Но для этого мне нужно выполнить два отдельных запроса.

Пожалуйста, дайте нам знать, если мы можем достичь этого в одном запросе и как.

Спасибо.

Я пробовал сортировать с фильтром соответствия должен

1 Ответ

0 голосов
/ 21 января 2019

Вы агрегирование (= groupby) на студента.Ваши документы будут сгруппированы по студентам.Вы просто должны хранить записи, которые вы хотите после: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html

https://www.elastic.co/guide/en/elasticsearch/reference/6.x/search-aggregations-pipeline-bucket-sort-aggregation.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...