Aggregation an der Spitze N Ergebnisse

Problem

Wenn ich nach "iphone" suche, erhalte ich 400 Produktergebnisse und die Produktkategorie-Aggregation gibt die Top-3-Kategorien in der Ergebnismenge zurück.

Zu diesen Kategorien gehören Smartphones, Handytaschen und Handyzubehör.

Wenn ich nach "iphone 6" suche, erhalte ich 1400 Ergebnisse, da die zusätzlichen "6" Übereinstimmungen mit mehr Produkten ergeben. Die Produktkategorie-Aggregation gibt jetzt die Top-3-Kategorien für alle diese Ergebnisse zurück.

Die drei wichtigsten Produktkategorien umfassen nun Kabel und Computermonitore.

Was ich tun muss, ist die Top-3-Kategorien für die Top-100-Ergebnisse zu bekommen.

Was ich versucht habe:

Ich habe versucht mit dertop_hits Aggregation innerhalb der Top-Kategorie-Aggregation, die jedoch nur die Top-Produkte in jeder Kategorie zurückgibt.

Etwas wie das

{
    "aggs": {

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

Ich habe auch versucht, ein @ zu erstelltop_hits Aggregation mit einer Unteraggregation innerhalb, um die Top-Kategorien zu erhalten, aber das funktioniert auch nicht.

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

Kann mir jemand bei diesem Problem helfen?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage