Допустим, у меня есть простой индекс товаров для таких документов:
{
"product_name": "some_product",
"category": "some_cotegory",
"price": "200"
"sold_times": "5",
"store": "store1"
}
, и я хочу получить самые дорогие товары в своей категории и в магазине, которые были проданы менее чем в 3 раза, и яхотите, чтобы их заказывали по магазинам, категориям и цене.
Я могу использовать агрегацию по двум терминам и агрегацию по наиболее популярным товарам, чтобы получить самые дорогие продукты в своей категории для каждого магазина, но как отсортировать и отфильтровать результаты по наиболее популярным продуктам?Мне действительно нужно отфильтровать результаты после того, как будет проведена агитация по наибольшим попаданиям, поэтому запрос фильтра не является решением.Как я могу это сделать?Thx
РЕДАКТИРОВАТЬ:
Короче говоря - мне нужен эластичный эквивалент для SQL:
SELECT p.*
FROM products AS p
INNER JOIN (
SELECT max(price) AS price, categroy, store
FROM products
GROUP BY category, store
) AS max_prices ON p.price = max_prices.price AND p.category = max_prices.category AND p.store = max_prices.store
WHERE p.sold_times < 3;