English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Маппинг - это контур документов, хранящихся в индексе. Он определяет тип данных, такие как geo_point или строка, а также формат и правила полей, отображаемых в документе, чтобы контролировать динамическое добавление полей.
PUT "/bankaccountdetails" { "mappings": { "properties": { "name": { "type": "text"}, "date": { "type": "date"}, "balance": { "type": "double"}, "liability": { "type": "double"} } } }
Когда мы запускаем上面的 код, мы получаем такой ответ-
{ "acknowledged": true, "shards_acknowledged": true, "index": "bankaccountdetails" }
Elasticsearch поддерживает множество различных типов данных для полей документов. Здесь подробно обсуждаются типы данных, используемые для хранения полей в Elasticsearch.
Эти типы данных являются базовыми, например текст, ключевые слова, даты, целые числа, двойная точность, булево или ip, почти все системы поддерживают.
Эти типы данных являются комбинацией основных типов данных. Это включает в себя массивы, JSON объекты и вложенные типы данных. Пример вложенного типа данных приведен ниже&minus
POST "/tabletennis/_doc/1" { "group": "players", "user": [ { "first": "dave", "last": "jones" } { "first": "kevin", "last": "morris" } ] }
Когда мы запускаем上面的 код, мы получаем такой ответ-
{ "_index": "tabletennis", "_type": "_doc", "_id": "1", _version" : 2, "result": "updated", "_shards": { "total": 2, "successful": 1, "failed": 0 } "_seq_no": 1, "_primary_term": 1 }
Другой пример кода выглядит следующим образом-
POST "/accountdetails/_doc/1" { "from_acc": "7056443341", "to_acc": "7032460534", "date": "11/1/2016", "amount": 10000 }
Когда мы запускаем上面的 код, мы получаем такой ответ-
{ "_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 или выше, больше не принимает маппинг по умолчанию. Индексы 6.x将继续 работать в Elasticsearch 6.x, как и раньше. Типы弃ены в API 7.0.