Reducir (shrink) un índice con demasiados shards
ElasticsearchCiclo de vida de índicesComando
# 1) Block writes on the source and gather all shard copies on one node:
PUT log-2026.09/_settings
{
"index.number_of_replicas": 0,
"index.routing.allocation.require._name": "node-1",
"index.blocks.write": true
}
GET _cluster/health/log-2026.09?wait_for_no_relocating_shards=true&timeout=30m
# 2) Create a new index with fewer shards (the target must be a factor of the source):
POST log-2026.09/_shrink/log-2026.09-shrunk
{
"settings": {
"index.number_of_shards": 1,
"index.number_of_replicas": 1,
"index.routing.allocation.require._name": null,
"index.blocks.write": null,
"index.codec": "best_compression"
}
}Qué hace
Reduce el número de shards primarios de un índice en el que ya no se escribe creando hard links de sus segmentos en un índice nuevo; reduce la sobrecarga de heap y de número de shards.
Cuándo usarlo
Cuando los índices diarios se crearon con más shards de los necesarios, el límite de shards está cerca o antes de mover índices antiguos al tier warm.
Precaución
El índice de origen queda cerrado a escrituras durante el shrink; aplíquelo solo a índices en los que ya no se escribe. El número de shards de destino debe ser un divisor del de origen (8 -> 4, 2 o 1). El nodo donde se reúnen todas las copias necesita tanto disco libre como el índice de origen. Con replicas 0 el shard de origen tiene una sola copia; no borre el origen hasta que termine la operación y el nuevo índice esté en green.