Ich bin neu in Elasticsearch und müssen mit der Lösung des helfen folgende:Elasticsearch - Filter, Gruppe und zählen Ergebnisse für jede Gruppe
ich eine Reihe von Dokumenten, die mehrere Produkte enthalten. Ich möchte die Produkteigenschaft product_brand
von "Apple" filtern und die Anzahl der Produkte ermitteln, die dem Filter entsprechen. Das Ergebnis sollte jedoch nach der Dokument-ID gruppiert werden, die auch Teil des Dokuments selbst ist (test_id
).
Beispiel Dokument:
"test" : {
"test_id" : 19988,
"test_name" : "Test",
},
"products" : [
{
"product_id" : 1,
"product_brand" : "Apple"
},
{
"product_id" : 2,
"product_brand" : "Apple"
},
{
"product_id" : 3,
"product_brand" : "Samsung"
}
]
Das Ergebnis sollte:
{
"key" : 19988,
"count" : 2
},
In SQL wäre es etwa so aussehen:
SELECT test_id, COUNT(product_id)
FROM `test`
WHERE product_brand = 'Apple'
GROUP BY test_id;
Wie kann ich das erreichen?