English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Das Aggregationsrahmen sammelt alle Daten, die durch die Suchanfrage ausgewählt wurden, und besteht aus vielen Bausteinen, die helfen, komplexe Datenübersichten zu erstellen. Die grundlegende Struktur der Aggregation ist wie folgt:-
"aggregations": { "": { "": { } [["meta": { [] } ]? [["aggregations": { []+ } } ["": { ... } ]?* }
Aggregationsarten gibt es verschiedene, jede mit ihrem eigenen Zweck. In diesem Kapitel werden diese Fragen im Detail besprochen.
Diese Aggregationsmethoden helfen, Matrizen auf Basis der Feldwerte der aggregierten Dokumente zu berechnen und können manchmal auch aus Skripten generierte Werte enthalten.
Die numerische Matrix kann ein Einzelfeld (wie die Durchschnittsaggregation) oder ein Mehrfeld (wie Statistiken) sein.
Diese Aggregation wird verwendet, um den Durchschnittswert eines numerischen Feldes in den aggregierten Dokumenten zu erhalten. Zum Beispiel,
POST /schools/_search { "aggs":{ "avg_fees":{"avg":{"field":"fees"}} } }
Bei der Ausführung des obigen Codes erhielten wir folgende Ergebnisse-
{ "took": 41, "timed_out": false "_shards": {}} "total": : 1, "successful": : 1, "skipped": 0, "failed": 0 } "hits": { "total": { "value": : 2, "relation": "eq" } "max_score": " 1.0, "hits": [ { "_index": "schools", "_type": "school", "_id": ""5", "_score": " 1.0, "_source": { "name": "Central School", "description": "CBSE Affiliation", "street": "Nagan", "city": "paprola", "state": "HP", "zip": ""176115", "location": [ 31.8955385, 76.8380405 ], "fees": " 2200, "tags": [ "Senior Secondary", "schöner Campus" ], "rating": ""3.3" } } { "_index": "schools", "_type": "school", "_id": ""4", "_score": " 1.0, "_source": { "name": "City Best School", "description": "ICSE", "street": "West End", "city": "Meerut", "state": "UP", "zip": ""250002", "location": [ 28.9926174, 77.692485 ], "fees": " 3500, "tags": [ "vollständig computerisiert" ], "rating": ""4.5" } } ] } "aggregations": { "avg_fees": { "value": : 2850.0 } } }
Diese Aggregation bietet die Zählung der verschiedenen Werte eines bestimmten Feldes.
POST /schools/_search?size=0 { "aggs":{ "distinct_name_count":{"cardinality":{"field":"fees"}} } }
Bei der Ausführung des obigen Codes erhielten wir folgende Ergebnisse-
{ "took": 2, "timed_out": false "_shards": {}} "total": : 1, "successful": : 1, "skipped": 0, "failed": 0 } "hits": { "total": { "value": : 2, "relation": "eq" } "max_score": null, "hits": [ ] } "aggregations": { "distinct_name_count": { "value": : 2 } } }
Hinweis Der Wert der Basis ist2weil die Gebühren zwei verschiedene Werte haben.
Diese Aggregation generiert alle statistischen Informationen über ein bestimmtes numerisches Feld in den Aggregationsdokumenten.
POST /schools/_search?size=0 { "aggs": { "fees_stats": { "extended_stats": { "field": "fees" } } } }
Bei der Ausführung des obigen Codes erhielten wir folgende Ergebnisse-
{ "took": 8, "timed_out": false "_shards": {}} "total": : 1, "successful": : 1, "skipped": 0, "failed": 0 } "hits": { "total": { "value": : 2, "relation": "eq" } "max_score": null, "hits": [ ] } "aggregations": { "fees_stats": { "count": 2, "min": 2200.0, "max": 3500.0, "avg": 2850.0, "sum": 5700.0, "sum_of_squares": 1.709E7, "variance": 422500.0, "std_deviation": 650.0, "std_deviation_bounds": { "upper": 4150.0, "lower": 1550.0 } } } }
Diese Aggregation sucht im Aggregationsdokument nach dem größten Wert eines bestimmten numerischen Felds.
POST /schools/_search?size=0 { "aggs": { "max_fees": { "max": { "field": "fees" } } } }
Bei der Ausführung des obigen Codes erhielten wir folgende Ergebnisse-
{ "took": 16, "timed_out": false "_shards": {}} "total": : 1, "successful": : 1, "skipped": 0, "failed": 0 } "hits": { "total": { "value": : 2, "relation": "eq" } "max_score": null, "hits": [ ] } "aggregations": { "max_fees": { "value": : 3500.0 } } }
Diese Aggregation sucht im Aggregationsdokument nach dem kleinsten Wert eines bestimmten numerischen Felds.
POST /schools/_search?size=0 { "aggs": { "min_fees": { "min": { "field": "fees" } } } }
Bei der Ausführung des obigen Codes erhielten wir folgende Ergebnisse-
{ "took": 2, "timed_out": false "_shards": {}} "total": : 1, "successful": : 1, "skipped": 0, "failed": 0 } "hits": { "total": { "value": : 2, "relation": "eq" } "max_score": null, "hits": [ ] } "aggregations": { "min_fees": { "value": : 2200.0 } } }
Diese Aggregation berechnet die Summe eines bestimmten numerischen Felds in den Aggregationsdokumenten.
POST /schools/_search?size=0 { "aggs": { "total_fees": { "sum": { "field": "fees" } } } }
Bei der Ausführung des obigen Codes erhielten wir folgende Ergebnisse-
{ "took": 8, "timed_out": false "_shards": {}} "total": : 1, "successful": : 1, "skipped": 0, "failed": 0 } "hits": { "total": { "value": : 2, "relation": "eq" } "max_score": null, "hits": [ ] } "aggregations": { "total_fees": { "value": : 5700.0 } } }
In Ausnahmefällen gibt es auch einige andere Metrik-Aggregationsmethoden, wie z.B. Geobound-Aggregation und Geozentrum-Aggregation, um geografische Positionen zu realisieren.
Eine mehrfache Metrik-Aggregation, die statistische Informationen berechnet, basierend auf numerischen Werten, die aus den Aggregationsdokumenten extrahiert werden.
POST /schools/_search?size=0 { "aggs": { "grades_stats": { "stats": { "field": "fees" } } } }
Bei der Ausführung des obigen Codes erhielten wir folgende Ergebnisse-
{ "took": 2, "timed_out": false "_shards": {}} "total": : 1, "successful": : 1, "skipped": 0, "failed": 0 } "hits": { "total": { "value": : 2, "relation": "eq" } "max_score": null, "hits": [ ] } "aggregations": { "grades_stats": { "count": 2, "min": 2200.0, "max": 3500.0, "avg": 2850.0, "sum": 5700.0 } } }
Sie können bei der Anfrage den Meta-Tag verwenden, um einige Daten zur Aggregation hinzuzufügen, und diese im Antworttext abrufen.
POST /schools/_search?size=0 { "aggs": { "min_fees": { "avg": { "field": "fees" } } "meta": { "dsc": "Lowest Fees This Year" } } } }
Bei der Ausführung des obigen Codes erhielten wir folgende Ergebnisse-
{ "took": 0 "timed_out": false "_shards": {}} "total": : 1, "successful": : 1, "skipped": 0, "failed": 0 } "hits": { "total": { "value": : 2, "relation": "eq" } "max_score": null, "hits": [ ] } "aggregations": { "min_fees": { "meta": { "dsc": "Niedrigste Gebühren dieses Jahres" } "value": : 2850.0 } } }