Аналогично Query the latest document of each type on Elasticsearch, у меня есть набор записей в ES. Ради примера, предположим, что это новость, а также, каждый с отображением:Elasticsearch получить последние документы, сгруппированные по нескольким полям
"news": {
"properties": {
"source": { "type": "string", "index": "not_analyzed" },
"headline": { "type": "object" },
"timestamp": { "type": "date", "format": "date_hour_minute_second_millis" },
"user": { "type": "string", "index": "not_analyzed" }
"newspaper": { "type": "string", "index": "not_analyzed"}
}
}
Я могу получить последнюю «новость» для каждого пользователя с:
"size": 0,
"aggs": {
"sources" : {
"terms" : {
"field" : "user"
},
"aggs": {
"latest": {
"top_hits": {
"size": 1,
"sort": {
"timestamp": "desc"
}
}
}
}
}
}
Однако то, что я я пытаюсь добиться, чтобы получить последнюю статью за пользователя, за газету, и я не могу понять это правильно.
например.
- Джон, Нью-Йорк Таймс, Title1
- Джон, BBC, Заголовок 2 Джейн, штат Нью-Йорк Таймс, TITLE3
- т.д.