English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Elasticsearch 映射

Die Mapping ist das Profil der in einem Index gespeicherten Dokumente. Es definiert Datentypen wie geo_point oder String sowie das Format und die Regeln der in den Dokumenten angezeigten Felder, um die Mapping für dynamisch hinzugefügte Felder zu steuern.

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

Wenn wir den obigen Code ausführen, erhalten wir die folgende Antwort-

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

Feld-Datentypen

Elasticsearch unterstützt verschiedene Daten Typen für Felder in Dokumenten. Hier wird detailliert über die Daten Typen diskutiert, die für das Speichern von Feldern in Elasticsearch verwendet werden.

Kern-Datentypen

Dies sind grundlegende Datentypen, wie Text, Schlüsselwörter, Datum, Long, Double, Boolean oder IP, die fast alle Systeme unterstützen.

Komplexe Datentypen

Diese Datentypen sind Kombinationen von Kern-Datentypen. Dazu gehören Array, JSON-Objekt und verschachtelte Datentypen. Ein Beispiel für verschachtelte Datentypen ist wie folgt&minus

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

Wenn wir den obigen Code ausführen, erhalten wir die folgende Antwort-

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

Ein weiteres Beispielcode sieht wie folgt aus-

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

Wenn wir den obigen Code ausführen, erhalten wir die folgende Antwort-

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

我们可以使用以下命令检查以上文档-

GET /accountdetails/_mappings?include_type_name=false

删除映射类型

在 Elasticsearch 7版本 .0.0 或更高版本中创建的索引不再接受 _default_ 映射。6版本 .x 将继续在 Elasticsearch 6在版本 .x 中像以前一样起作用。在7在版本 .0 中的API中已弃用类型。