Агрегация корреляции корзинок
Данная функция находится в техническом предварительном просмотре и может быть изменена или удалена в будущих версиях. Elastic будет работать над устранением любых проблем, но функции в техническом предварительном просмотре не подпадают под SLA поддержки официальных функций GA.
Агрегация канала, которая выполняет функцию корреляции на сконфигурированной агрегации с множеством корзинок.
Параметры
-
buckets_path - (Обязательно, строка) Путь к корзинками, содержащим набор значений для корреляции. Синтаксис см. в
buckets_pathСинтаксис. -
function -
(Обязательно, объект) Функция корреляции, которую нужно выполнить.
Свойства
function-
count_correlation -
(Обязательно*, объект) Настройка для расчёта корреляции по количеству. Эта функция предназначена для определения корреляции значения терма и заданного метрического значения. Следовательно, она должна соответствовать следующим требованиям.
-
buckets_pathдолжен указывать на метрику_count. - Общее количество всех значений подсчёта
bucket_pathдолжно быть меньше или равноindicator.doc_count. - При использовании этой функции требуется предварительный расчёт для сбора необходимых значений
indicator.
Свойства
count_correlation-
indicator -
(Обязательно, объект) Индикатор для корреляции сконфигурированных значений
bucket_path.Свойства
indicator-
doc_count - (Обязательно, целое число) Общее количество документов, изначально создавших
expectations. Оно должно быть больше или равно сумме всех значений вbuckets_path, поскольку это исходный супермножество данных, к которому коррелируются значения термов. -
expectations - (Обязательно, массив) Массив чисел для корреляции сконфигурированных значений
bucket_path. Длина этого значения всегда должна быть равна количеству корзинок, возвращённыхbucket_path. -
fractions - (Необязательно, массив) Массив дробей для усреднения и расчёта дисперсии. Это необходимо, если в предварительно рассчитанных данных и
buckets_pathесть известные пробелы. Длинаfractions, если указана, должна быть равнаexpectations.
-
-
-
Синтаксис
Агрегация bucket_correlation выглядит следующим образом:
{
"bucket_correlation": {
"buckets_path": "range_values>_count",
"function": {
"count_correlation": {
"indicator": {
"expectations": [...],
"doc_count": 10000
}
}
}
}
} | Корзинки, содержащие значения, по которым проводится корреляция. | |
| Определение функции корреляции. |
Пример
Следующий фрагмент коррелирует отдельные термы в поле version с метрикой latency. Не показан предварительный расчёт значений индикатора latency, который был выполнен с помощью агрегации процентилей.
В данном примере используются только процентили 10.
POST correlate_latency/_search?size=0&filter_path=aggregations
{
"aggs": {
"buckets": {
"terms": {
"field": "version",
"size": 2
},
"aggs": {
"latency_ranges": {
"range": {
"field": "latency",
"ranges": [
{ "to": 0.0 },
{ "from": 0, "to": 105 },
{ "from": 105, "to": 225 },
{ "from": 225, "to": 445 },
{ "from": 445, "to": 665 },
{ "from": 665, "to": 885 },
{ "from": 885, "to": 1115 },
{ "from": 1115, "to": 1335 },
{ "from": 1335, "to": 1555 },
{ "from": 1555, "to": 1775 },
{ "from": 1775 }
]
}
},
"bucket_correlation": {
"bucket_correlation": {
"buckets_path": "latency_ranges>_count",
"function": {
"count_correlation": {
"indicator": {
"expectations": [0, 52.5, 165, 335, 555, 775, 1000, 1225, 1445, 1665, 1775],
"doc_count": 200
}
}
}
}
}
}
}
}
} | Корзинки термов, содержащие агрегацию диапазона и агрегацию корреляции корзинок. Обе используются для расчёта корреляции значений термов с задержкой. | |
| Агрегация диапазона по полю задержки. Диапазоны созданы на основе процентилей поля задержки. | |
| Агрегация корреляции корзинок, которая рассчитывает корреляцию количества значений термов в каждом диапазоне и предварительно рассчитанных значений индикатора. |
И вот возможный ответ:
{
"aggregations" : {
"buckets" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [
{
"key" : "1.0",
"doc_count" : 100,
"latency_ranges" : {
"buckets" : [
{
"key" : "*-0.0",
"to" : 0.0,
"doc_count" : 0
},
{
"key" : "0.0-105.0",
"from" : 0.0,
"to" : 105.0,
"doc_count" : 1
},
{
"key" : "105.0-225.0",
"from" : 105.0,
"to" : 225.0,
"doc_count" : 9
},
{
"key" : "225.0-445.0",
"from" : 225.0,
"to" : 445.0,
"doc_count" : 0
},
{
"key" : "445.0-665.0",
"from" : 445.0,
"to" : 665.0,
"doc_count" : 0
},
{
"key" : "665.0-885.0",
"from" : 665.0,
"to" : 885.0,
"doc_count" : 0
},
{
"key" : "885.0-1115.0",
"from" : 885.0,
"to" : 1115.0,
"doc_count" : 10
},
{
"key" : "1115.0-1335.0",
"from" : 1115.0,
"to" : 1335.0,
"doc_count" : 20
},
{
"key" : "1335.0-1555.0",
"from" : 1335.0,
"to" : 1555.0,
"doc_count" : 20
},
{
"key" : "1555.0-1775.0",
"from" : 1555.0,
"to" : 1775.0,
"doc_count" : 20
},
{
"key" : "1775.0-*",
"from" : 1775.0,
"doc_count" : 20
}
]
},
"bucket_correlation" : {
"value" : 0.8402398981360937
}
},
{
"key" : "2.0",
"doc_count" : 100,
"latency_ranges" : {
"buckets" : [
{
"key" : "*-0.0",
"to" : 0.0,
"doc_count" : 0
},
{
"key" : "0.0-105.0",
"from" : 0.0,
"to" : 105.0,
"doc_count" : 19
},
{
"key" : "105.0-225.0",
"from" : 105.0,
"to" : 225.0,
"doc_count" : 11
},
{
"key" : "225.0-445.0",
"from" : 225.0,
"to" : 445.0,
"doc_count" : 20
},
{
"key" : "445.0-665.0",
"from" : 445.0,
"to" : 665.0,
"doc_count" : 20
},
{
"key" : "665.0-885.0",
"from" : 665.0,
"to" : 885.0,
"doc_count" : 20
},
{
"key" : "885.0-1115.0",
"from" : 885.0,
"to" : 1115.0,
"doc_count" : 10
},
{
"key" : "1115.0-1335.0",
"from" : 1115.0,
"to" : 1335.0,
"doc_count" : 0
},
{
"key" : "1335.0-1555.0",
"from" : 1335.0,
"to" : 1555.0,
"doc_count" : 0
},
{
"key" : "1555.0-1775.0",
"from" : 1555.0,
"to" : 1775.0,
"doc_count" : 0
},
{
"key" : "1775.0-*",
"from" : 1775.0,
"doc_count" : 0
}
]
},
"bucket_correlation" : {
"value" : -0.5759855613334943
}
}
]
}
}
}
© 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-bucket-correlation-aggregation.html