Elasticsearch - Cartographie

Le mappage est le contour des documents stockés dans un index. Il définit le type de données comme geo_point ou string et le format des champs présents dans les documents et les règles pour contrôler le mappage des champs ajoutés dynamiquement.

PUT bankaccountdetails
{
   "mappings":{
      "properties":{
         "name": { "type":"text"}, "date":{ "type":"date"},
         "balance":{ "type":"double"}, "liability":{ "type":"double"}
      }
   }
 }

Lorsque nous exécutons le code ci-dessus, nous obtenons la réponse comme indiqué ci-dessous -

{
   "acknowledged" : true,
   "shards_acknowledged" : true,
   "index" : "bankaccountdetails"
}

Types de données de champ

Elasticsearch prend en charge un certain nombre de types de données différents pour les champs d'un document. Les types de données utilisés pour stocker les champs dans Elasticsearch sont décrits en détail ici.

Types de données de base

Ce sont les types de données de base tels que texte, mot-clé, date, long, double, booléen ou ip, qui sont pris en charge par presque tous les systèmes.

Types de données complexes

Ces types de données sont une combinaison de types de données de base. Ceux-ci incluent un tableau, un objet JSON et un type de données imbriqué. Un exemple de type de données imbriqué est illustré ci-dessous & moins

POST /tabletennis/_doc/1
{
   "group" : "players",
   "user" : [
      {
         "first" : "dave", "last" : "jones"
      },
      {
         "first" : "kevin", "last" : "morris"
      }
   ]
}

Lorsque nous exécutons le code ci-dessus, nous obtenons la réponse comme indiqué ci-dessous -

{
   "_index" : "tabletennis",
   "_type" : "_doc",
   "_id" : "1",
   _version" : 2,
   "result" : "updated",
   "_shards" : {
      "total" : 2,
      "successful" : 1,
      "failed" : 0
   },
   "_seq_no" : 1,
   "_primary_term" : 1
}

Un autre exemple de code est présenté ci-dessous -

POST /accountdetails/_doc/1
{
   "from_acc":"7056443341", "to_acc":"7032460534",
   "date":"11/1/2016", "amount":10000
}

Lorsque nous exécutons le code ci-dessus, nous obtenons la réponse comme indiqué ci-dessous -

{  "_index" : "accountdetails",
   "_type" : "_doc",
   "_id" : "1",
   "_version" : 1,
   "result" : "created",
   "_shards" : {
      "total" : 2,
      "successful" : 1,
      "failed" : 0
   },
   "_seq_no" : 1,
   "_primary_term" : 1
}

Nous pouvons vérifier le document ci-dessus en utilisant la commande suivante -

GET /accountdetails/_mappings?include_type_name=false

Suppression des types de mappage

Les indices créés dans Elasticsearch 7.0.0 ou version ultérieure n'acceptent plus un mappage _default_. Les indices créés dans 6.x continueront de fonctionner comme auparavant dans Elasticsearch 6.x. Les types sont obsolètes dans les API de la version 7.0.