Modelowanie relacji rodzic / dziecko (wariant produkt / produkt) w Elasticsearch

Rozbijam głowę na modelowanie wariantów produktu za pomocą ES (lub Solr w tym przypadku)

Rozważ (wymyślony przykład):

różne produkty (powiedzmy koszulki)każdy produkt ma zestaw właściwości (productid, nazwa, opis, marka, kolor, popularność)każdy produkt ma zestaw wariantów produktu z właściwościami (productvariantid (kombinacja wielkości produktu ++), productid, rozmiar, dostępność, cena)

Wydaje się, że jest to standardowa relacja rodzic-dziecko między produktem a wariantem produktu. Chciałbym to tak modelować w ES.

Chciałbym móc wykonać następujące czynności:

A. Zapytanie o warianty produktu (i zwróć wszystkie właściwości). Nie ma potrzeby zwracania właściwości produktu, wystarczy właściwości wariantu produktu.

B. Każde zapytanie użytkownika jest ograniczone tak, że co najwyżej 1 zmienna produktu pasuje do jednego produktu (w powyższym przykładzie oznacza to, że ograniczamy na productvariant.size)

C. filtr według ceny.

D. filtr na niektóre właściwości produktu

E. zamówienie według ceny

F. zamówienie na własność produktu, takie jak popularność, lub połączenie 2.

G. facet na productvariant.price

H. aspekt wielu właściwości produktu (rodzica)

Robiąc to z dokumentami rodzica / dziecka ihas_parent w ES:A-E + G są możliwe.

Jednak o tymF iH? Patrzyłem na rzeczy jak_scope dla aspektów (chociaż wprawdzie nie mam możliwości 100%) i wszystkich innych rzeczy, które przychodzą mi do głowy, ale nie widzę oczywistego rozwiązania, aby pokazać aspekty właściwości produktu i móc sortować według nich w połączeniu zhas_parent .

Próbowałem innych rzeczy (na papierze) - has_child -> brak szczęścia wymaga zwrócenia informacji wariantowych - osadzone dokumenty (wariant wewnątrz produktu) i zwrócenia całego produktu ze wszystkimi wariantami. Po prostu czuje się niezręcznie. Co więcej, jestem pewien, że w ten sposób nie mogę tego zrobić.

Pomóż bardzo doceniony

questionAnswers(1)

yourAnswerToTheQuestion