Lors d’une montée de version de FlowerDocs d’une version 2.5 et inférieure vers une version 2.6 et ses mineures, il est nécessaire de migrer les données. En effet, le moteur d’indexation utilisé à partir de FlowerDocs 2.6.0 est OpenSearch, issu d’un fork de la version 7.10.2 d’Elasticsearch. Le modèle de données interne à Elasticsearch a été revu à la suite de la version 6.0 par la suppression du support des types dans les index. Une migration avec réécriture est donc nécessaire afin d’effectuer cette montée de version.
Pour cela, FlowerDocs CLM met à disposition un job
, chargé de ré-indexer les données d’un scope d’une instance Elasticsearch 5.2.1 dans une instance OpenSearch 1.3.4
.
Réindexation des données
Pour réindexer les données Elasticsearch dans OpenSearch, la commande CLM suivante doit être exécutée :
java -Des.nodes=<URL Cible OpenSearch> -jar <clm> es reindex --source=<URL source Elasticsearch> --scope=<scope cible>
Il est nécessaire de fournir à minima ces informations :
--scope
: Scope à réindexer--source
: Source Elasticsearch-Des.nodes
: Cible OpenSearch (en paramètre de JVM et non de la commande)
opensearch.yml
avec la propriété reindex.remote.whitelist: "host1:port, host2:port"
Suivi de l’avancement
Le processus de réindexation peut durer plus ou moins longtemps selon le volume de données à réindexer. Afin de suivre l’avancement du processus, cet utilitaire fournit à intervalle régulier des informations sur le pourcentage d’avancement pour :
- chaque index Elasticsearch
- le processus complet de réindexation
L’intervalle de temps entre chaque point d’avancement à lieu toute les 20 secondes, il est configurable en ajoutant le paramètre reindexation.sleep
avec une valeur en millisecondes de la manière suivante :
<clm> es reindex --reindexation.sleep=<intervalle en ms>
Gestion de l’authentification
Source : Elasticsearch
Afin de fournir les identifiants permettant de se connecter à une instance Elasticsearch source sécurisée, les paramètres suivant doivent être fournis à la commande :
--user
: Identifiant de l’utilisateur Elasticsearch--password
: Mot de passe de l’utilisateur Elasticsearch
java -jar <clm> es reindex --user=<utilisateur Elasticsearch> --password=<mot de passe Elasticsearch> <autres paramètres>
Cible : OpenSearch
Afin de fournir les identifiants permettant de se connecter à une instance OpenSearch cible sécurisée, les paramètres suivant doivent être fournis à la JVM :
es.user
: Identifiant de l’utilisateur OpenSearches.password
: Mot de passe de l’utilisateur OpenSearch
java -Des.nodes=<URL Cible OpenSearch> -Des.user=<utilisateur OpenSearch> -Des.password=<mot de passe OpenSearch> -jar <clm> es reindex <paramètres>
Suppression des tâches de réindexation
Par défaut, toutes les tâches sont supprimées à la fin de l’exécution de la commande. Il est possible de conserver les tâches pour les analyser via les API OpenSearch. Pour cela, les paramètres suivants doivent être fournis à la commande :
delete-tasks=false
, aucune tâche n’est supprimée après la réindexation.delete-failed-tasks=false
, uniquement les tâches en succès sont supprimées, les tâches en erreurs sont conservées.
<clm> es reindex --delete-tasks=false
<clm> es reindex --delete-failed-tasks=false
Création des index dans OpenSearch
Si les index existent déjà dans OpenSearch, il est possible de désactiver leur création en ajoutant le paramètre create-indexes
:
<clm> es reindex --create-indexes=false
Création des mappings dans OpenSearch
Si les mappings pour chacun des index existent déjà dans OpenSearch, il est possible de désactiver leur mise à jour en ajoutant le paramètre update-mappings
:
<clm> es reindex --update-mappings=false
Configuration de scripts de réindexation personnalisés
Il est possible de surcharger les scripts de réindexation interne à FlowerDocs en fournissant ses propres scripts. Pour qu’ils soient pris en compte, il est nécessaire de renseigner le chemin d’un dossier contenant les scripts en ajoutant le paramètre reindexation.scripts.path
de la façon suivante :
<clm> es reindex --reindexation.scripts.path=<chemin du dossier>
Le fichier de réindexation doit être nommer Documents-reindex.json
.