Агрегация Stats
Агрегация multi-value, которая вычисляет статистические данные по числовым значениям, извлеченным из агрегированных документов.
Возвращаемые статистические данные включают: min, max, sum, count и avg.
Предполагается, что данные состоят из документов, представляющих оценки экзаменов (от 0 до 100) студентов
POST /exams/_search?size=0
{
"aggs": {
"grades_stats": { "stats": { "field": "grade" } }
}
} Вышеприведенная агрегация вычисляет статистику оценок по всем документам. Тип агрегации — stats, а параметр field определяет числовое поле документов, по которому будут вычислены статистические данные. В результате будет возвращено следующее:
{
...
"aggregations": {
"grades_stats": {
"count": 2,
"min": 50.0,
"max": 100.0,
"avg": 75.0,
"sum": 150.0
}
}
} Имя агрегации (grades_stats выше) также используется в качестве ключа для извлечения результата агрегации из возвращённого ответа.
Скрипт
Если вам нужно получить stats для чего-то более сложного, чем просто одно поле, выполните агрегацию по полю runtime.
POST /exams/_search
{
"size": 0,
"runtime_mappings": {
"grade.weighted": {
"type": "double",
"script": """
emit(doc['grade'].value * doc['weight'].value)
"""
}
},
"aggs": {
"grades_stats": {
"stats": {
"field": "grade.weighted"
}
}
}
} Пропущенное значение
Параметр missing определяет, как должны обрабатываться документы, у которых отсутствует значение. По умолчанию они будут игнорироваться, но также можно обработать их так, как будто у них есть значение.
POST /exams/_search?size=0
{
"aggs": {
"grades_stats": {
"stats": {
"field": "grade",
"missing": 0
}
}
}
} | Документы без значения в поле |
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/search-aggregations-metrics-stats-aggregation.html