Versionner vos indices elasticsearch

Thomas Decaux
2 min readFeb 17, 2022

Dans cette courte story, je vais vous expliqer comment bien versionner des indices elasticsearch, en utilisant les alias.

Pourquoi faire ?

On peut presque traiter la data comme du code, étant donné que la data généralement est issue au final de code de programmation !

Versionner du contenu c’est :

  • garder le contenu
  • pouvoir switcher d’une version à l’autre quand on veut
  • pouvoir comparer 2 versions

Bref c’est bien, et elasticsearch offre un moyen très simple de le faire.

Les alias

An alias is a secondary name for a group of data streams or indices. Most Elasticsearch APIs accept an alias in place of a data stream or index name.

You can change the data streams or indices of an alias at any time. If you use aliases in your application’s Elasticsearch requests, you can reindex data with no downtime or changes to your app’s code.

Comment versionner ses indices ?

On va d’abord écrire nos indices de cette façon:

“consolidation-ctr-v1” , “consolidation-ctr-v2" etc…

Ensuite, nous allons créer un alias qui pointe vers tel ou tel version de l’index, avec l’API HTTP d’elasticsearch:

Attention si vous définissez l’alias dans l’index template, vous pouvez vous retrouver avec plusieurs indices derrière le même alias !

Comment passer d’un index normal à un index versionné ?

La plus part du temps, on oublie de bien nommer l’index dès le départ, et il est déjà en prod ! aie aie .

Pas de panique, on va renommer l’index puis créer l’alias comme vu précédement:

Attention, ici on aura forcément un down time ! si votre application tape en continue l’index.

Pour éviter ça, on peut d’abord cloner l’index, créer ensuite un alias sur un autre nom et modifier l’application pour qu’elle tape sur le nouvel alias.

--

--