Procédure d'exploitation suite a la création ou la modification d'une ontologie ############################################################################### Au préalable à la création ou à la modification d'une ontologie, les index Elasticsearch correspondant aux ontologies doivent être créés ou mis à jour. Création d'une ontologie ======================== Suite à la création d'une nouvelle ontologie les index Elasticsearch doivent être mis à jour selon la procédure suivante: * Dans le cas d'une création, il suffit de créer un nouveau mapping dans les index concernés. Ex : Ajout d'une propriété Licence dans tous les index unit (unit* signifiant tous les index unit unit_0, unit_1 etc ...) .. code-block:: bash curl -XPUT "http://localhost:9200/unit*/_mapping/typeunique?update_all_types" -d' { "properties": { "Licence": { "type": "text" } } }' Pour verifier sur un ou tous les index unit : .. code-block:: bash curl -XGET "http://localhost:9200/unit_0/_mapping/?pretty=true" .. code-block:: bash curl -XGET "http://localhost:9200/unit*/_mapping/?pretty=true" Changement de type d'une ontologie existante ============================================ Dans ce cas, le changement de type dans elasticsearch n'est pas possible. Il faut créer un nouvel index ES avec un nouveau mapping et reindexer l'ancien index dans ce dernier. On récupère d'abord l'ancien index .. code-block:: bash curl -XGET 'localhost:9200/unit_1/_mapping?pretty=true' On créé un fichier json et on y copie les données obtenues ( ne conserver que la balise "mappings" : { ...} et son contenu). On modifie le mapping en changeant le type des propriétés choisies. On créé un nouvel index on lui passant en paramètre le fichier du nouveau mapping . .. code-block:: bash curl -XPUT "http://localhost:9200/new_unit_1" -H 'Content-Type: application/json' -d @newmapping.json Verifier l'index : .. code-block:: bash curl -XGET 'localhost:9200/new_unit_1/_mapping/' On reindexe unit_1 vers le nouvel index new_unit_1 .. code-block:: bash curl -XPOST 'localhost:9200/_reindex' -H 'Content-Type:application/json' -d '{ "source" : { "index" : "unit_1" }, "dest" : { "index" : "new_unit_1", "version_type": "external" } }' On efface l'alias de l'ancien index unit_1 .. code-block:: bash curl -XDELETE 'localhost:9200/unit_1/_alias/unit_1' et on l'affecte au nouvel index new_unit_1 .. code-block:: bash curl -XPUT 'localhost:9200/new_unit_1/_alias/unit_1' .. warning:: les index elasticsearch de :term:`VITAM` sont créés par tenant. Il faudra refaire l'opération ci-dessus pour chaque tenant. .. warning:: en cas de reindexation des index elasticsearch par le service :term:`REST` de :term:`VITAM`, les données sont réindexées suivant le mapping initial. Les nouveaux mappings ne seront donc pas pris en compte. Ce comportement sera modifié dans le futur.