Elasticsearch - Mappatura

La mappatura è la struttura dei documenti archiviati in un indice. Definisce il tipo di dati come geo_point o stringa e il formato dei campi presenti nei documenti e nelle regole per controllare la mappatura dei campi aggiunti dinamicamente.

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

Quando eseguiamo il codice sopra, otteniamo la risposta come mostrato di seguito:

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

Tipi di dati di campo

Elasticsearch supporta una serie di diversi tipi di dati per i campi in un documento. I tipi di dati utilizzati per memorizzare i campi in Elasticsearch sono discussi in dettaglio qui.

Tipi di dati principali

Questi sono i tipi di dati di base come testo, parola chiave, data, lungo, doppio, booleano o ip, che sono supportati da quasi tutti i sistemi.

Tipi di dati complessi

Questi tipi di dati sono una combinazione di tipi di dati principali. Questi includono array, oggetto JSON e tipo di dati nidificato. Un esempio di tipo di dati nidificato è mostrato sotto e meno

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

Quando eseguiamo il codice sopra, otteniamo la risposta come mostrato di seguito:

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

Un altro codice di esempio è mostrato di seguito:

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

Quando eseguiamo il codice sopra, otteniamo la risposta come mostrato di seguito:

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

Possiamo controllare il documento sopra usando il seguente comando:

GET /accountdetails/_mappings?include_type_name=false

Rimozione dei tipi di mappatura

Gli indici creati in Elasticsearch 7.0.0 o versioni successive non accettano più una mappatura _default_. Gli indici creati in 6.x continueranno a funzionare come prima in Elasticsearch 6.x. I tipi sono deprecati nelle API nella 7.0.