写点什么

Elasticsearch Dynamic Mapping

用户头像
escray
关注
发布于: 2021 年 03 月 08 日
Elasticsearch Dynamic Mapping

Elasticsearch Dynamic Mapping,内容来自 B 站中华石杉 Elasticsearch 顶尖高手系列课程核心知识篇,英文内容来自 Elasticsearch: The Definitive Guide [2.x]。


Dynamic Mapping

https://www.elastic.co/guide/en/elasticsearch/guide/2.x/dynamic-mapping.html


When Elasticsearch encounters a previously unknown field in a document, it uses dynamic mapping to determine the datatype for the field and automatically adds the new field to the type mapping.


dynamic setting 定制 dynamic 策略


  • true:遇到陌生字段,就进行 dynamic mapping

  • false:遇到陌生字段,就忽略

  • strict:遇到陌生字段,就报错


PUT /my_index{  "mappings": {    "my_type": {      "dynamic": "strict",      "properties": {        "title": {          "type": "text"        },        "address": {          "type": "object",          "dynamic": "true"        }      }    }  }}
PUT /my_index/my_type/1{  "title": "my article",  "content": "this is my article",  "address": {    "province": "guangdong",    "city": "guangzhou"  }}
{  "error": {    "root_cause": [      {        "type": "strict_dynamic_mapping_exception",        "reason": "mapping set to strict, dynamic introduction of [content] within [my_type] is not allowed"      }    ],    "type": "strict_dynamic_mapping_exception",    "reason": "mapping set to strict, dynamic introduction of [content] within [my_type] is not allowed"  },  "status": 400}
PUT /my_index/my_type/1{  "title": "my article",  "address": {    "province": "guangdong",    "city": "guangzhou"  }}
GET /my_index/_mapping/my_type
{  "my_index": {    "mappings": {      "my_type": {        "dynamic": "strict",        "properties": {          "address": {            "dynamic": "true",            "properties": {              "city": {                "type": "text",                "fields": {                  "keyword": {                    "type": "keyword",                    "ignore_above": 256                  }                }              },              "province": {                "type": "text",                "fields": {                  "keyword": {                    "type": "keyword",                    "ignore_above": 256                  }                }              }            }          },          "title": {            "type": "text"          }        }      }    }  }}
复制代码


发布于: 2021 年 03 月 08 日阅读数: 17
用户头像

escray

关注

Let's Go 2017.11.19 加入

在学 Elasticsearch 的项目经理

评论

发布
暂无评论
Elasticsearch Dynamic Mapping