Узнайте, как переиндексировать Elasticsearch более эффективно и повысить производительность переиндексации Elasticsearch, следуя этим советам.
Отключить реплики
Отключите реплики при создании нового индекса с нуля, который не обслуживает поисковый трафик. Реплики могут быть изменены динамически позже, после завершения переиндексации.
1 2 3 4 5 6 | PUT index_name/_settings" { "index":{ "number_of_replicas":"0" } } |
Отключить интервал обновления
Снова отключите интервал обновления. Его можно изменить после завершения переиндексации.
1 2 3 4 5 6 | PUT index_name/_settings" { "index":{ "refresh_interval":"-1" } } |
Использовать _Bulk API
Используйте _bulk API с несколькими клиентами, чтобы получить максимальную пропускную способность Elasticsearch .
Увеличить размер буфера
Увеличение размера буфера индексирования.
1 2 3 4 5 6 7 8 9 10 | POST _reindex { "source": { "index": "source_index", "size": 500 }, "dest": { "index": "dest_index" } } |
Используйте API Reindex
Если поле _source включено и вы выполняете переиндексацию в случае смены анализатора на существующих полях (разрывные изменения), используйте Reindex API Elasticsearch.
Отключение дросселирования слияния
Отключите дросселирование слияния, изменив параметр "indices.store.throttle.type" на none. Если у вас есть массивный индекс с большим объемом записи, то вы можете сделать его постоянным. Обратите внимание, что это актуально только для Elasticsearch 6.x и старше.
Обеспечьте оптимальные параметры масштабируемости
Выбор оптимального количества первичных шардов имеет решающее значение для масштабируемости и не может быть изменен впоследствии.