Глобальная агрегация не учитывает все документы в моем эластичном поиске.
Я попытался сделать, как сказано в документации, поместив глобальное агрегирование на верхний уровень.
Глобальная агрегация определяет одну группу всех документов в контексте выполнения поиска. Этот контекст определяется индексами и типами документов, которые вы ищете.
Глобальные агрегаторы можно размещать только как агрегаторы верхнего уровня.
{
"size": 0,
"aggs":{
"all_documents":{
"global":{},
"aggs":{
"all_totals":{
"terms":{
"field":"dateReleve"
},
"aggs":{
"total_clients_cut":{
"sum":{
"field":"nbClientCoupe"
}
}
}
}
}
}
}
}
значение sum_other_doc_count
ожидается равным нулю, но я получаю 299932
{
"took": 9,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 302644,
"max_score": 0,
"hits": []
},
"aggregations": {
"all_documents": {
"doc_count": 302644,
"all_totals": {
"doc_count_error_upper_bound": 608,
"sum_other_doc_count": 299932,
"buckets": [
{
"key": 1554144600000,
"key_as_string": "2019-04-01T18:50:00.000Z",
"doc_count": 374,
"total_clients_cut": {
"value": 178673
}
},
...
Но когда я увеличиваю размер корзины терминов, выполняя:
{
"size": 0,
"aggs":{
"all_documents":{
"global":{},
"aggs":{
"all_totals":{
"terms":{
"field":"dateReleve",
"size": 10000 <----------------------
},
"aggs":{
"total_clients_cut":{
"sum":{
"field":"nbClientCoupe"
}
}
}
}
}
}
}
}
Я получаю ожидаемый результат, который равен sum_other_doc_count
= 0.
Я думаю, что увеличение размера корзины не является хорошей практикой, потому что мы не можем предположить, сколько документов у нас уже есть.
Поэтому мой вопрос заключается в том, как получить ожидаемый результат с помощью глобальной агрегации.