Подтвердить что ты не робот

Elasticsearch: как освободить размер магазина после удаления документов

На моем сервере elasticsearch: Всего документов: 3 миллиона, общий размер: 3,6G Затем я удаляю около 2,8 миллиона документов: общие документы: около 0,13 миллиона, общий размер: 3,6G

Я удалил документы, как мне освободить размер документов?

4b9b3361

Ответ 1

При удалении документов они помечаются только как удаленные, поэтому их не нужно искать. Чтобы освободить место на диске, вы должны оптимизировать индекс:

curl -XPOST 'http://localhost:9200/_optimize?only_expunge_deletes=true'

документация: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-optimize.html

Документация перемещена по адресу: https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-forcemerge.html.

Обновить

Начиная с Elasticsearch 2.1.x, optimize устарела в пользу forcemerge. API такой же, только конечная точка изменилась.

curl -XPOST 'http://localhost:9200/_forcemerge?only_expunge_deletes=true'

Ответ 3

Кнутуолкер ответ правильный. Однако если вы используете AWS ElasticSearch и хотите освободить место для хранения, это не будет работать.

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

curl -XPOST 'https://something.es.amazonaws.com/index-*/_forcemerge?only_expunge_deletes=true'

AWS публикует список отличий API ElasticSearch.

Ответ 4

Замените индексное имя своим. Это сразу освободит место

curl -XPOST 'http://localhost:9200/indexname/_forcemerge' -d 
'{"only_expunge_deletes": false, "max_num_segments": 1 }'