Скорость индексирования OpenSearch - советы по улучшению производительности индексирования

OpenSearch logo OpenSearch

Узнайте, как повысить уровень индексации OpenSearch для лучшей работы OpenSearch, следуя этим 11 полезным советам.

Настройка интервала обновления

Настройте refresh_interval (по умолчанию 1 сек) в соответствии с требованиями вашей системы.

Отключить реплики

Отключите реплики и настройте их в соответствии с вашими требованиями.

Автоматическое поле идентификатора

Не задавайте поле "_id" документа. Если в этом нет необходимости, лучше разрешить OpenSearch устанавливать "_id" автоматически.

Использовать несколько потоков

Используйте несколько потоков для индексации.

Использовать официальные клиенты

Используйте "официальные" клиенты OpenSearch, так как они оптимизированы для пула соединений и поддерживают alives.

Избегайте частых обновлений

Избегайте частых обновлений (одного и того же документа), так как каждое обновление создает новый документ в OpenSearch и помечает старый документ как удаленный. Это может привести к появлению нескольких удаленных документов и увеличению размера сегментов, которые не всегда объединяются в процессе слияния сегментов. Чтобы обойти эту проблему, вы можете собрать все эти обновления в приложении, используемом для вызова API индекса (например, в поисковой службе, написанной на Java или Python), чтобы 1) удалить ненужные обновления (например, многочисленные обновления полей счетчика) и 2) отправить в OpenSearch только несколько обновлений.

Тщательно разрабатывайте индексное отображение

Будьте внимательны при разработке индексного отображения. Не индексируйте поля, если они не используются для поиска (по умолчанию true), так как это уменьшит размер инвертированного индекса OpenSearch и сэкономит затраты на анализ поля. Опция index управляет этим.

Осторожно используйте анализаторы

Осторожно используйте анализаторы для ваших полей; некоторые анализаторы (ngram и т.д.) занимают значительные ресурсы и могут замедлить скорость индексирования и значительно увеличить размер индекса для больших текстовых полей.

Используйте параметр Wait_For

Если вам требуется немедленный поиск по проиндексированному документу, то вместо явного обновления используйте параметр wait_for при индексировании.

Использовать bulk API

Используйте bulk API для индексации множества документов вместо того, чтобы индексировать их по отдельности. Производительность Bulk API зависит от размера, а не от количества документов в запросе.

Использовать SSD

Используйте SSD вместо магнитных дисков для ускорения процесса слияния сегментов.

Avatar for Gnostis
Gnostis
Добавить комментарий