Modelando relaciones padre / hijo (producto / variante de producto) en Elasticsearch

Rompiendo mi cabeza en modelar variantes de productos usando ES (o Solr para el caso)

Considere (ejemplo artificial):

Productos diferentes (digamos camisetas)cada producto tiene un conjunto de propiedades (productid, nombre, desc, marca, color, popularidad)cada producto tiene un conjunto de variantes de producto con propiedades (variante de producto (combinación de productid ++ tamaño), productid, tamaño, disponibilidad, precio)

Esto parece ser una relación padre / hijo estándar entre producto y variante de producto. Así que me gustaría modelarlo así en ES.

Me gustaría poder hacer lo siguiente:

A. Consulta de productos (y devuelve todas las propiedades). No hay necesidad de devolver las propiedades del producto, las propiedades de la variedad de productos son suficientes.

B. Cada consulta de usuario está restringida de modo que, como máximo, 1 coincidencia de variante de producto por producto (en el ejemplo anterior significa que restringimos el tamaño de producto).

C. filtro en el precio.

D. Filtro sobre algunas propiedades del producto.

E. orden en precio

F. orden en la propiedad del producto, como la popularidad, o una combinación de los 2.

G. faceta en productvariant.price

H. faceta en múltiples propiedades del producto (el padre)

Haciendo esto con los documentos padre / hijo yhas_parent en ES:A-E + G es posible.

Sin embargo, ¿qué talF yH? He mirado las cosas como_scope para las facetas (aunque hay que admitir que no asimilo las posibilidades al 100%) y todas las demás cosas que me vienen a la mente, pero no veo una solución obvia para mostrar las facetas para las propiedades del producto y poder ordenarlas en conjunto conhas_parent .

He intentado otras cosas (en papel) - has_child -> sin suerte, necesito que me devuelvan la información de la variante - documentos incrustados (variante en el interior del producto) y que devuelva el producto completo con todas las variantes. Simplemente se siente torpe. Además, estoy bastante seguro de que no puedo facetar / ordenar el precio de esa manera.

Ayuda muy apreciada

Respuestas a la pregunta(1)

Su respuesta a la pregunta