Где я должен настроить параметр индекса max_result_window?

Я пытаюсь добавить в свой elasticsearch.yml

index.max_result_window: 10000

Но проблема в том, что мне не нравится, когда я добавляю index. в конфигурацию (выдает ошибку), это работало в эластике версии 2.X, а теперь в 6.X, похоже, не работает. Есть идеи, как настроить индексы в последних версиях elastica? Кажется, я не могу найти на это ответ.

7
0
13 422
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

max_result_window — это параметр уровня динамического индекса, а не конкретный узел. Значение по умолчанию — 10 000, поэтому, если вы хотите установить именно это значение, в этом нет необходимости.

Вы можете настроить его, обновив либо определенные настройки индекса, либо глобально для всех индексов существующий:

PUT _settings
{
  "index.max_result_window": 11000
}

Вышеприведенное обновит все индексы существующий. Чтобы это повлияло на будущие индексы, вам понадобится шаблон индекса, который нацелен на определенные шаблоны индекса (или просто * для глобального) - например:

PUT _template/example
{
  "index_patterns": ["settings_test*"],
  "settings": {
    "index.max_result_window": 12000
  }
}

PUT settings_test

Вышеизложенное даст следующее:

GET settings_test
...

{
  "settings_test" : {
    "aliases" : { },
    "mappings" : { },
    "settings" : {
      "index" : {
        ...
        "max_result_window" : "12000",
        ...
      }
    }
  }
}

Ссылка: https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules.html

Спасибо за ваш ответ, но по моему тегу я ищу решение для эластичности.

user11101096 10.04.2019 09:06

Elastica — это просто клиент для доступа к кластеру Elasticsearch — вы указали, что пытались обновить свой файл elasticsearch.yml, который не имеет ничего общего с Elastica. Приведенные выше команды можно выполнять либо как простые команды curl для кластера Elasticsearch, либо, если вы хотите использовать Elastica, посмотрите на метод setSettings, который отправит ту же информацию, что и выше, в ваш кластер Elasticsearch. Ссылка: elastica.io/api/latest/classes/…

James Pittiglio 10.04.2019 14:21

Для эластики я думаю, что это решение:

// Load index
$elasticaIndex = $elasticaClient->getIndex('twitter');

// Create the index new
$elasticaIndex->create(
    array(
        'number_of_shards' => 4,
        'number_of_replicas' => 1,
        'analysis' => array(
            'analyzer' => array(
                'default_index' => array(
                    'type' => 'custom',
                    'tokenizer' => 'standard',
                    'filter' => array('lowercase', 'mySnowball')
                ),
                'default_search' => array(
                    'type' => 'custom',
                    'tokenizer' => 'standard',
                    'filter' => array('standard', 'lowercase', 'mySnowball')
                )
            ),
            'filter' => array(
                'mySnowball' => array(
                    'type' => 'snowball',
                    'language' => 'German'
                )
            )
        ),
        'max_result_window' => 10000
    ),
    true
);

Другие вопросы по теме