Как уменьшить сегменты Lucene ElasticSearch без принудительного слияния - PullRequest
0 голосов
/ 04 августа 2020

У нас есть кластер, в котором хранится 1,5 млн записей с общим размером 3,5 ГБ. Каждые 30 минут обновляется или создается около 2-5 тысяч записей. До сих пор, после массового индексирования ранее существовавших данных, мы выполняли принудительное слияние, чтобы уменьшить количество сегментов с 30-35 до 1, что значительно увеличивало производительность поиска. Через несколько дней количество сегментов обычно увеличивается и выравнивается примерно до 7 или 8, а производительность все еще в порядке.

Проблема в том, что мы планируем масштабировать наши данные примерно до 80 ГБ. Если мы сделаем это, меня беспокоит использование принудительного слияния после начального индекса массы, сегмент будет больше 5 ГБ, после чего он не будет учитываться для автоматического c слияния с помощью ElasticSearch, и производительность снизится. Без использования принудительного слияния, хотя я считаю, что количество сегментов будет слишком большим.

Есть ли способ заставить поиск elasti c более агрессивно оптимизировать без вызова API принудительного слияния? У нас нет пользователей по вечерам или в выходные дни, поэтому в идеале мы могли бы выполнить массовое индексирование, а затем дать ему все выходные, чтобы оптимизировать сегменты до меньшего числа, не заботясь о производительности поиска в течение этого времени.

...