Solución:
Los alias son como enlaces suaves o accesos directos a índices reales.
la ventaja es poder tener un alias que apunte a index1a mientras se construye o reindexa en index2b y el momento de intercambiarlos es atómico gracias al alias, al que todo código debe apuntar
Cambiar el nombre de un alias es una operación simple de eliminar y agregar dentro de la misma API. Esta operación es atómica, no hay necesidad de preocuparse por un corto período de tiempo en el que el alias no apunta a un índice:
[EDIT] como se señaló, los alias de @wholevinski tienen otras funcionalidades como:
Se pueden especificar varios índices para una acción …
toda la información está en la página que ha vinculado
[EDIT2] más sobre por qué la necesidad / beneficio de la atomicidad
la clave es “tiempo de inactividad cero” https://en.wikipedia.org/wiki/Zero_unscheduled_downtime o https://en.wikipedia.org/wiki/High_availability
https://www.elastic.co/guide/en/elasticsearch/guide/current/index-aliases.html
Hablaremos más sobre los otros usos de los alias más adelante en el libro. Por ahora, explicaremos cómo usarlos para cambiar de un índice antiguo a un índice nuevo sin tiempo de inactividad.
@arhak cubrió el tema bastante bien. Un caso de uso que (al menos) me hizo comprender el valor de los índices fue la necesidad de eliminar documentos obsoletos y, más específicamente, cuando se utilizan índices basados en el tiempo.
Por ejemplo, debe conservar los registros de una aplicación durante al menos un año. Decide utilizar índices basados en el tiempo, lo que significa que guarda en índices con el siguiente formato: 2018-02-logs, 2018-03-logs
etc. Para poder buscar en todos los índices se crea el siguiente alias:
POST /_aliases
{
"actions": [{
"add": {
"alias": "current-logs", "indices": [ "2018-02-logs","2018-03-logs" ]
}
}]
}
Y consulta como:
GET /current-logs/_search
Otra ventaja es que puede eliminar los valores desactualizados muy fácilmente:
POST /_aliases
{
"actions": [
{ "remove": { "alias": "current-logs", "index": "logs_2018-01" }}
]
}
y DELETE /logs_2018-01