Проблемы и решения, описанные в этой статье, также применимы к Тенсент Облако Elasticsearch Service(ES)。
Если в существующий индекс больше не выполняется запись, а фрагментов индекса много, а объем данных невелик, можно рассмотреть возможность уменьшения количества фрагментов данных.
1. Если количество первичных шардов в индексе четное, то число после сжатия будет четным (меньше количества первичных шардов в исходном индексе) или 1; 2. Если количество первичных шардов в индексе нечетное, то число после сжатия будет нечетным (меньше количества первичных шардов в исходном индексе); 3. Если количество осколков первичного индекса является простым числом, число после сжатия может быть только 1;
Например:
8
Первичный осколок может быть уменьшен до 4
、 2
или 1
первичный осколок;15
Первичный осколок может быть уменьшен до 5
、 3
или 1
первичный осколок;7
主分片只能收缩成1
;1. Создайте новый индекс с той же конфигурацией, что и исходный индекс, но с другим количеством первичных шардов; 2. Создайте жёсткую связь сегмента исходного индекса с новым индексом. (системы Windows не поддерживают жесткие соединения, поэтому они будут скопированы; если сегменты расположены на разных дисках, их также необходимо скопировать); 3. Восстановите новый индекс.
Прежде чем сокращать количество сегментов в индексе, индекс необходимо пометить как доступный только для чтения, а копию (основную копию или реплику) каждого сегмента в индексе необходимо переместить на тот же узел, а также проверить состояние работоспособности индекс должен быть зеленым.
PUT /source_index/_settings
{
"settings": {
"index.routing.allocation.require._name": "node_name",
"index.blocks.write": true
}
}
Обратите внимание, что выбранный узел данных должен иметь место для хранения этого индекса.
POST source_index/_shrink/shrink_index?copy_settings=true
{
"settings": {
"index.number_of_replicas": 1,
"index.number_of_shards": 1,
"index.codec": "best_compression"
},
"aliases": {
"my_search_indices": {}
}
}
Уведомление, copy_settings
Его нельзя установить на false
,Этот параметр будет удален в версии 8.
Восстановите настройки исходного индекса, иначе шарды реплики невозможно будет выделить.
POST my_source_index/_setting
{
"settings": {
"index.routing.allocation.require._name": null,
"index.blocks.write": null
}
}