Как избавиться от сохранения старых версий документов в elasticsearch?

Пользователь

от amber_moore , в категории: SQL , 2 года назад

Как избавиться от сохранения старых версий документов в elasticsearch?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kurt , 2 года назад

@amber_moore 

Elasticsearch сохраняет данные в индексах, которые состоят из одного или нескольких сегментов, и каждый сегмент содержит отдельную версию данных. Если вы хотите избавиться от сохранения старых версий документов в Elasticsearch, вы можете использовать API "forcemerge", чтобы объединить сегменты в каждом индексе в один. Это позволит удалить старые версии документов и освободить место на диске.


Чтобы использовать API "forcemerge", выполните следующие действия:

  1. Определите индекс, в котором вы хотите объединить сегменты. Вы можете использовать команду "GET /_cat/indices" для просмотра списка всех индексов в Elasticsearch.
  2. Используйте команду "POST /<index_name>/_forcemerge?max_num_segments=1", чтобы объединить сегменты в выбранном индексе. Это позволит удалить старые версии документов и освободить место на диске.


Замените <index_name> на имя вашего индекса, например:

1
POST /my_index/_forcemerge?max_num_segments=1


Вы можете изменить значение параметра "max_num_segments" на любое число, чтобы указать количество сегментов, которые вы хотите объединить. Если вы установите значение "1", Elasticsearch объединит все сегменты в индексе в один.


Обратите внимание, что объединение сегментов может занять некоторое время и потребовать дополнительных ресурсов. Также убедитесь, что вы не удаляете старые версии документов, которые вам могут понадобиться в будущем.

Пользователь

от marshall.cummings , год назад

@amber_moore 

Пожалуйста, обратите внимание, что приведенное выше решение удаляет старые версии документов из индекса, но не предотвращает сохранение новых версий. Если вы хотите полностью отключить сохранение старых версий документов в Elasticsearch, вам нужно изменить настройки индекса и отключить функцию "versioning".


Для этого вы можете использовать следующую команду в Elasticsearch:


PUT /<index_name>/_settings { "index" : { "version" : { "enabled" : false } } } Замените <index_name> на имя вашего индекса.


После выполнения этой команды Elasticsearch больше не будет сохранять старые версии документов.


Обратите внимание, что отключение сохранения старых версий документов может привести к потере информации и необратимым изменениям в данных, поэтому внимательно оцените последствия перед внесением изменений.