🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Dynamic Mapping(动态映射) 原文链接 : [https://www.elastic.co/guide/en/elasticsearch/reference/5.3/dynamic-mapping.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/dynamic-mapping.html) 译文链接 : [http://www.apache.wiki/pages/viewpage.action?pageId=9405268](http://www.apache.wiki/pages/viewpage.action?pageId=9405268) 贡献者 :[曾少峰](/display/~zengshaofeng),[ApacheCN](/display/~apachecn),[Apache中文网](/display/~apachechina) **Elasticsearch** 最重要的功能之一就是让你尽可能快地开始探索数据。要索引文档,你不用立即创建 **index**(索引),定义相关的 **mapping** **type**(映射类型)和定义相关的 **fields**(字段)— 你可以只索引 **document**(文档)、**index**(索引)、**type**(类型)和 **fields**(字段),这些操作都将自动生效。 ``` curl -XPUT 'localhost:9200/data/counters/1?pretty' -H 'Content-Type: application/json' -d' # 1 { "count": 5 } ' ``` | 1 | 创建名为 **data** 的索引,其中包含名为 **counters** 的 **mapping** **type**(映射类型),以及名为 **count** 的 **long** 数据类型。 | 自动的检测和添加新的类型以及字段的过程,称之为动态映射。你可以根据需要定制动态映射的规则 :  [_default_ mapping](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/default-mapping.html)(**_default_  **映射) 配置一个基本映射,作用于新的映射类型。 [Dynamic field mappings](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/dynamic-field-mapping.html)(动态字段映射) 控制动态字段发现的规则。 [Dynamic templates](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/dynamic-templates.html)(动态模板) 利用自定义规则来配置动态添加的字段的映射。 Tips : 无论是自动还是显式的创建索引,[Index templates](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/indices-templates.html "Index Templates")(索引模板)都允许你为一个新的索引配置 **mappings**,**settings** 和 **aliases**(别名)。 ### Disabling automatic type creation(禁用自动类型创建) 每个索引都可以通过将 **index** **setting**(索引设置)中的 **index.mapper.dynamic** 属性设置为 **false**,来禁用 **Automatic type creation**(自动创建类型)-(根据数据类型自动创建 **mapping**):  ``` curl -XPUT 'localhost:9200/data/_settings?pretty' -H 'Content-Type: application/json' -d' { "index.mapper.dynamic":false # 1 } ' ``` | 1 | 禁用名为 “**data**” 的索引的自动创建类型(根据数据类型自动创建 **mapping**)。 | 通过对索引模板的设置,可以禁用所有索引的自动创建类型(根据数据类型自动创建mapping)):  ``` curl -XPUT 'localhost:9200/_template/template_all?pretty' -H 'Content-Type: application/json' -d' { "template": "*", "order":0, "settings": { "index.mapper.dynamic": false # 1 } } ' ``` | 1 | 禁用所有索引的自动创建类型(根据数据类型自动创建mapping)。 | 无论该属性如何设置,在 [创建索引](/pages/viewpage.action?pageId=4882789) 或使用 [PUT mapping](/pages/viewpage.action?pageId=4882803) **API** 时,我们仍然可以显式的添加 **types**(类型)。