English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
A estrutura básica da coleta de agregação é composta por muitos blocos que coletam todos os dados selecionados por uma consulta de pesquisa, ajudando a construir resumos complexos de dados.-
"aggregations": { "": { "": { } [["meta": { [] }]]? [["aggregations": { [] }],+ } } ["": { ... } ]?* }
As agregações têm diferentes tipos, cada um com seu próprio propósito. Este capítulo discutirá detalhadamente esses tópicos.
Estas agregações ajudam a calcular a matriz com base nos valores de campo de documentos de agregação, e às vezes também podem gerar alguns valores a partir de scripts.
A matriz numérica pode ser univalente (como a agregação média) ou multivalorada (como estatísticas).
Esta agregação é usada para obter a média de qualquer campo numérico existente em documentos de agregação. Por exemplo,
POST /schools/_search { "aggs":{ "avg_fees":{"avg":{"field":"fees"}} } }
Ao executar o código acima, obtemos os seguintes resultados-
{ "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", "beautiful 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": [ "fully computerized" ], "rating": ""4.5" } } ] } "aggregations": { "avg_fees": { "value": 2850.0 } } }
Esta agregação fornece a contagem de diferentes valores de campo específico.
POST /schools/_search?size=0 { "aggs":{ "distinct_name_count":{"cardinality":{"field":"fees"}} } }
Ao executar o código acima, obtemos os seguintes resultados-
{ "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 } } }
Nota −O valor da base é2porque há dois valores diferentes de custos.
Esta agregação gera todas as informações estatísticas sobre o campo numérico específico dos documentos de agregação.
POST /schools/_search?size=0 { "aggs": { "fees_stats": { "extended_stats": { "field": "fees" } } } }
Ao executar o código acima, obtemos os seguintes resultados-
{ "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 } } } }
Esta agregação encontra o valor máximo do campo numérico específico nos documentos de agregação.
POST /schools/_search?size=0 { "aggs": { "max_fees": { "max": { "field": "fees" } } } }
Ao executar o código acima, obtemos os seguintes resultados-
{ "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 } } }
Esta agregação encontra o valor mínimo do campo numérico específico nos documentos de agregação.
POST /schools/_search?size=0 { "aggs": { "min_fees": { "min": { "field": "fees" } } } }
Ao executar o código acima, obtemos os seguintes resultados-
{ "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 } } }
Esta agregação calcula a soma do campo de valor específico dos documentos de agregação.
POST /schools/_search?size=0 { "aggs": { "total_fees": { "sum": { "field": "fees" } } } }
Ao executar o código acima, obtemos os seguintes resultados-
{ "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 } } }
Em alguns casos específicos, há outras agregações de medida, como agregação de limites geográficos e agregação de centroide geográfico, para alcançar localização geográfica.
Um tipo de agregação de medida multivalorada que calcula informações estatísticas com base em valores extraídos dos documentos de agregação.
POST /schools/_search?size=0 { "aggs": { "grades_stats": { "stats": { "field": "fees" } } } }
Ao executar o código acima, obtemos os seguintes resultados-
{ "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 } } }
Você pode usar o rótulo meta na solicitação para adicionar alguns dados sobre agregação e obtê-los como resposta.
POST /schools/_search?size=0 { "aggs": { "min_fees": { "avg": { "field": "fees" } } "meta": { "dsc": "Lowest Fees This Year" } } } }
Ao executar o código acima, obtemos os seguintes resultados-
{ "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": "Taxas Mais Baixas do Ano" } "value": 2850.0 } } }