Моделирование родительских / дочерних отношений (product / productvariant) в Elasticsearch

Я ломаю голову над моделированием вариантов продукта с использованием ES (или Solr)

Рассмотрим (надуманный пример):

разные продукты (скажем футболки)каждый продукт имеет набор свойств (productid, название, desc, бренд, цвет, популярность)у каждого продукта есть набор вариантов продукта со свойствами (productvariantid (комбинация размера productid ++), productid, размер, доступность, цена)

Похоже, это стандартное отношение родитель / потомок между product и productvariant. Так что я'Я хотел бы смоделировать это в ES.I '

Я хотел бы иметь возможность сделать следующее:

A. Запросите варианты продукта (и верните все свойства). Не нужно возвращать свойства продукта, достаточно свойств продукта.

B. Каждый пользовательский запрос ограничен, так что не более 1 варианта продукта соответствует одному продукту (в вышеприведенном примере это означает, что мы ограничены productvariant.size)

C. фильтр по цене.

D. Фильтр по некоторым свойствам товара

E. заказ по цене

F. заказ на собственность продукта, такую как популярность, или комбинация 2.

G. фасет на productvariant.price

H. Фасет по нескольким свойствам товара (родитель)

Делать это с родительскими / дочерними документами иhas_parent в ES:A-E + G возможны

Тем не менее, как насчет F и H? Я'мы смотрели на вещи как_scope для граней (хотя по общему признанию я нет 100%) и все остальное, что приходит на ум, но я нене вижу очевидного решения, чтобы показать фасеты для свойств продукта и иметь возможность сортировать их в сочетании с .I 'has_parent

пробовал другие вещи (на бумаге) - has_child -> не повезло, нужна информация о вариантах - встроенные документы (вариант внутри продукта) и возврат всего продукта со всеми вариантами. Это просто кажется неуклюжим. Кроме того, яя уверен, что смогут фасет / заказ по цене таким образом.

Помощь очень ценится

Ответы на вопрос(1)

Ваш ответ на вопрос