У меня есть интернет-магазин, и мне нужно отсортировать по совокупным данным о продажах. Примеры документов на продукцию:
{
"id": 123,
"title": "foo product",
"picture": "https://i.picsum.photos/id/959/200/300.jpghttps://i.picsum.photos/id/959/200/300.jpg"
}
Примеры документов для продажи:
{
"product_id": 123,
"date": "2020-01-01",
"sales": 5
},
{
"product_id": 123,
"date": "2020-01-02",
"sales": 6
},
{
"product_id": 123,
"date": "2020-01-03",
"sales": 2
},
{
"product_id": 123,
"date": "2020-01-05",
"sales": 88
}
Обратите внимание, что дни без продаж не входят в индекс/тип sales
.
В настоящее время:
- Мне нужно отфильтровать все продукты, у которых продажи больше/меньше X за определенный пользователем период времени (и даже возможность фильтровать продажи = 0)
- Мне нужно отсортировать по возрастанию/убыванию на основе продаж за этот период времени (по возрастанию также будет означать, что он должен начинаться с продуктов без продаж).
- Мне нужен соответствующий документ продукта также в этом результате
- Я также должен иметь возможность сортировать по другим полям из индекса продукта.
Как мне это сделать? Мой фон из Solr, и я бы использовал для этого потоковые выражения.
ОБНОВЛЕНИЕ
Я собираюсь назначить награду за это. Я обнаружил, что этого можно добиться, используя агрегации и вложить их.
Если моя структура данных должна быть другой для этого, пожалуйста, опишите. Заранее спасибо!