#elasticsearch #aggregation #elasticsearch-aggregation
#elasticsearch #агрегация #elasticsearch-агрегация
Вопрос:
Количество PARTY_ID в обоих агрегатах должно быть одинаковым. В одном случае это 3000, а в другом случае это сумма всех значений (2675 244 41 6 2 = 2950 ) которые не равны. В чем может быть причина?
GET /test/data/_search
{
"size": 0,
"aggs": {
"ASSET_CLASS": {
"terms": {
"field": "ASSET_CLASS_WORST"
},
"aggs": {
"ASSET_CLASS": {
"cardinality": {
"field": "PARTY_ID"
}
}
}
},
"Total count": {
"cardinality": {
"field": "PARTY_ID"
}
}
}
}
Результат :
{
"took": 9,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 51891,
"max_score": 0,
"hits": []
},
"aggregations": {
"Total count": {
"value": 3000
},
"ASSET_CLASS": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "NPA",
"doc_count": 49252,
"ASSET_CLASS": {
"value": 2675
}
},
{
"key": "RESTRUCTURED",
"doc_count": 2275,
"ASSET_CLASS": {
"value": 244
}
},
{
"key": "SMA2",
"doc_count": 308,
"ASSET_CLASS": {
"value": 41
}
},
{
"key": "SMA1",
"doc_count": 42,
"ASSET_CLASS": {
"value": 6
}
},
{
"key": "SMA0",
"doc_count": 14,
"ASSET_CLASS": {
"value": 2
}
}
]
}
}
}
Ответ №1:
Первая строка документации для агрегации мощности гласит:
Агрегация метрик с одним значением, которая вычисляет приблизительное количество различных значений.
(выделение мое)
Ошибка 10 из 3000 значительно ниже 1%, так что этого и следовало ожидать.
Агрегация мощности использует улучшенную версию исчисления HyperLogLog, которая обладает интересными функциями, такими как постоянная сложность памяти и сложность O (N) времени.
Если вам нужны более точные результаты, попробуйте установить более высокую настройку для precision_threshold
параметра.
GET /test/data/_search
{
"size": 0,
"aggs": {
"ASSET_CLASS": {
"terms": {
"field": "ASSET_CLASS_WORST"
},
"aggs": {
"ASSET_CLASS": {
"cardinality": {
"field": "PARTY_ID",
"precision_threshold": 10000
}
}
}
},
"Total count": {
"cardinality": {
"field": "PARTY_ID",
"precision_threshold": 10000
}
}
}
}
Комментарии:
1. спасибо @Shadocko. Есть ли у вас какая-либо статистика производительности по этому поводу
2. @James нет, вам придется запускать тесты для вашей конкретной настройки.