Слишком много сегментов, на гистограмме сбой агрегирования - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть запрос на эластичный, который содержит всего 8 вложенных агрегаций, все агрегации являются term агрегациями, кроме одной, которая является histogram агрегацией.Если я удаляю эту агрегацию гистограммы, запрос выполняется отлично.Но с агрегацией гистограммы она выдает эту конкретную ошибку:

Эта агрегация создает слишком много сегментов (10001) и выдает ошибку в будущих версиях.Вам следует обновить настройку кластера [search.max_buckets] или использовать [составное] агрегирование, чтобы разбить все сегменты на несколько запросов.

Теперь я попытался увеличить размер max_buckets, но размер достигает значения выше100000, а также это число не определено, так что эта опция отсутствует.Затем я попытался создать агрегацию composite, как предложено в ошибке, но это также выдает ту же ошибку с добавленной гистограммой.

Так что мой вопрос в том, что я пишу запросы каким-то неправильным образом, или эластичность невыполнимо ли создать столько контейнеров?

Запрос Кибана: (только с 3 уровнями вложенности исходная задача имеет 8)

GET /project/test/_search
{
    "query": {
        "bool": {
            "must": [
                {
                "range": {
                    "date" : {
                        "gte": 20180101,
                        "lte": 20180630
                        }
                    }
                }
            ]
        }
    },
    "size": 0,
    "aggs": {
        "agg1": {
            "terms": {
                "field": "agg1"
            },
            "aggs": {
                "agg2": {
                    "terms": {
                        "field": "agg2"
                    },
                    "aggs": {
                        "agg3": {
                            "histogram": {
                                "field": "agg3",
                                "interval": 1
                            }
                        }
                    }
                }
            }   
        }
    }
}

1 Ответ

0 голосов
/ 09 августа 2019

Вы можете сделать это, чтобы изменить настройки кластера (search.max_buckets) больше.https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-update-settings.html

PUT _cluster/settings
{
  "persistent": {
    "search.max_buckets": 50000
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...