Agregación en los mejores resultados de N

Problema:

Si busco "iphone" obtengo 400 resultados de productos y la agregación de categorías de productos que tengo devuelve las 3 categorías principales en el conjunto de resultados.

Esas categorías incluirían teléfonos inteligentes, fundas de teléfonos y accesorios para teléfonos móviles.

Si busco "iphone 6" obtengo 1400 resultados debido a que el "6" adicional devuelve coincidencias con más productos. La agregación de categorías de productos ahora devuelve las 3 categorías principales para todos esos resultados.

Las 3 principales categorías de productos ahora serán desde cables hasta monitores de computadora.

Lo que debo hacer es obtener las 3 categorías principales para obtener los 100 mejores resultados.

Lo que he intentado:

He intentado usar eltop_hits agregación dentro de la categoría superior agregación pero eso solo devuelve los productos principales en cada categoría.

Algo como esto:

{
    "aggs": {

        "product_categories": {
            "terms": {
                "field": "product_category",
                "size": 10,
            }
        }        
        "aggs": {
            "top-categories": {
                "top_hits": {
                    "size" : 3
                }
            }
        }
    }
}

También he intentado crear untop_hits agregación con una subagregación dentro para obtener las principales categorías, pero eso tampoco funciona.

{
    "aggs": {
        "top-categories": {
            "top_hits": {
                "size" : 100
            }
            "aggs": {
                "product_categories": {
                    "terms": {
                        "field": "product_category",
                        "size": 3,
                    }
                }
            }
        }
    }
}

¿Hay alguien que me puede ayudar con este problema?

Respuestas a la pregunta(3)

Su respuesta a la pregunta