В моем индексе много документов с другой структурой. Общие ключи для всех документов - это следующие ключи: (Магазин, владелец, продукты, метка времени)
{"Store":"books for school","owner":"user_15","products":40,"@timestamp":2020/08/02T18:00, "a1":1,"a2":...}
{"Store":"books for school","owner":"user_15","products":45,"@timestamp":2020/08/02T19:00,"b1":1...}
{"Store":"books for school","owner":"user_17","products":55,"@timestamp":2020/08/02T20:00, "b2":1....}
В моем приложении я пытаюсь получить самые последние общие ключи для каждого магазина (владелец ,товары). Итак, для этого примера я хотел получить последний документ в этом примере.
Я попытался создать запрос агрегирования для всех общих ключей, но я не уверен, как упорядочить внутренние результаты по дате (так что что самое новое значение будет первым):
{
"size": 0,
"aggs": {
"store_aggr": {
"terms": {
"field": "Store"
},
"aggs": {
"owner_aggr": {
"terms": {
"field": "owner"
}
}
,
"products_aggr": {
"terms": {
"field": "products"
}
}
}
}
}
}
Как я могу упорядочить внутренние сегменты запроса с помощью @timestamp? Таким образом, я могу просто взять первое значение, и оно определенно будет самым новым ..
Кроме того, как я могу отфильтровать данные, чтобы документы были за последние два дня? Нужно ли мне добавлять фильтр запросов в поле @timestamp?