Necesito cambiar el nombre de varios índices en un clúster (su nombre debe cambiarse, no puedo usar alias ).
Vi que no hay formas compatibles de hacer eso, lo más cercano que encontré es cambiar el nombre del directorio del índice , probé esto en un clúster.
El clúster tiene 3 máquinas A, By Cy los fragmentos se replican en cada uno de ellos. Apago el elasticsearch A, rebautizado /var/lib/elasticsearch/security/nodes/0/indices/oldindexnamea /var/lib/elasticsearch/security/nodes/0/indices/newindexnamey reiniciado A.
El estado del clúster era amarillo y elasticsearch estaba haciendo algo de magia para restaurar un estado correcto. Después de un tiempo terminé con
oldindexnameestar disponible y completamente replicado (recuperado deByCsupongo)newindexnameestando disponible (puedo buscarlo) pero el complemento principal muestra que sus fragmentos están en un estado "Sin asignar" y que están atenuados (no replicados)
Durante la recuperación security.logmostró el siguiente mensaje:
[2015-02-20 11:02:33,461][INFO ][gateway.local.state.meta ] [A.example.com] dangled index directory name is [newindexname], state name is [oldindexname], renaming to directory name
Si bien newindexnamese puede buscar, ciertamente no se encuentra en un estado normal.
Volví al estado anterior eliminando newindexname. El clúster vuelve a ponerse verde sin ninguna entrada "No asignada".
Dado eso, ¿cómo puedo cambiar el nombre oldindexnamea newindexnameen un clúster?
Nota: la solución definitiva que tengo en mente es al desplazamiento de copias oldindexen newindexy eliminar oldindexdespués. Esto llevará tiempo, así que si hay una solución más directa, sería genial.