Die Aggregationen und Analytics APIs ermöglichen die Durchführung von Datenanalysen direkt innerhalb von Suchanfragen. Aggregationen fassen Daten zusammen, liefern Statistiken oder helfen, Muster zu erkennen.
Einfache Terms-Aggregation
POST /my-index/_search
{
"size": 0,
"aggs": {
"top_terms": {
"terms": {
"field": "category.keyword"
}
}
}
}
field: Das Feld, das aggregiert werden soll.Metrische Aggregation (Durchschnitt)
POST /my-index/_search
{
"size": 0,
"aggs": {
"average_price": {
"avg": {
"field": "price"
}
}
}
}
field: Das numerische Feld, dessen Durchschnitt
berechnet wird.Verschachtelte Aggregationen
POST /my-index/_search
{
"size": 0,
"aggs": {
"categories": {
"terms": {
"field": "category.keyword"
},
"aggs": {
"average_price": {
"avg": {
"field": "price"
}
}
}
}
}
}
aggs: Eine Aggregation kann innerhalb einer anderen
geschachtelt werden.Zeitbasierte Aggregation
POST /my-index/_search
{
"size": 0,
"aggs": {
"sales_over_time": {
"date_histogram": {
"field": "sale_date",
"calendar_interval": "month"
}
}
}
}
field: Zeitfeld, das aggregiert wird.calendar_interval: Zeitintervall für die
Gruppierung.| Parameter | Beschreibung |
|---|---|
field |
Feld, auf das die Aggregation angewendet wird. |
size |
Gibt an, wie viele Ergebnisse in der Aggregation zurückgegeben werden. |
calendar_interval |
Zeitintervall für zeitbasierte Aggregationen (z. B.
day, month). |
aggs |
Verschachtelte Aggregationen. |
Einfache Terms-Aggregation:
Analysieren Sie die Anzahl der Dokumente pro Kategorie im Index
products.
POST /products/_search
{
"size": 0,
"aggs": {
"categories": {
"terms": {
"field": "category.keyword"
}
}
}
}Durchschnittswert berechnen:
Berechnen Sie den Durchschnittspreis im Index products.
POST /products/_search
{
"size": 0,
"aggs": {
"average_price": {
"avg": {
"field": "price"
}
}
}
}Zeitbasierte Aggregation:
Gruppieren Sie Verkäufe im Index sales nach Monaten.
POST /sales/_search
{
"size": 0,
"aggs": {
"sales_over_time": {
"date_histogram": {
"field": "sale_date",
"calendar_interval": "month"
}
}
}
}Verschachtelte Aggregation:
Ermitteln Sie für jede Kategorie den Durchschnittspreis im Index
products.
POST /products/_search
{
"size": 0,
"aggs": {
"categories": {
"terms": {
"field": "category.keyword"
},
"aggs": {
"average_price": {
"avg": {
"field": "price"
}
}
}
}
}
}Einfache Terms-Aggregation
POST /products/_search
{
"size": 0,
"aggs": {
"categories": {
"terms": {
"field": "category.keyword"
}
}
}
}
Durchschnittswert berechnen
POST /products/_search
{
"size": 0,
"aggs": {
"average_price": {
"avg": {
"field": "price"
}
}
}
}
Zeitbasierte Aggregation
POST /sales/_search
{
"size": 0,
"aggs": {
"sales_over_time": {
"date_histogram": {
"field": "sale_date",
"calendar_interval": "month"
}
}
}
}
Verschachtelte Aggregation
POST /products/_search
{
"size": 0,
"aggs": {
"categories": {
"terms": {
"field": "category.keyword"
},
"aggs": {
"average_price": {
"avg": {
"field": "price"
}
}
}
}
}
}