多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# _default_ mapping(mapping中的_default_) 在一个将被用于映射任何类型的基本mapping中,在[创建索引](/pages/viewpage.action?pageId=4882789)时或者调用[PUT mapping](/pages/viewpage.action?pageId=4882803) API时,我们可以通过添加一个名为_default_的映射类型来定制一个索引。 ``` PUT my_index { "mappings": { "_default_": { #1 "_all": { "enabled": false } }, "user": {}, #2 "blogpost": { #3 "_all": { "enabled": true } } }} ``` | 1 | 在mapping的_default_中,将[_all](/display/Elasticsearch/_all+field)字段设置为禁用,该mapping中的所有类型的_all字段默认为禁用。 | | 2 | user类型从_default_中继承相关设置。 | | 3 | blogpost类型覆盖相关默认值,并且启用[_all](/display/Elasticsearch/_all+field)字段。 | Tips 当使用[PUT mapping](/pages/viewpage.action?pageId=4882803) API更新mapping的_default_时,新的mapping不会与现有的mapping合并。相反,新的mapping的_defalut_会替换现有的。 虽然mapping的_default_可以在索引创建后更新,但是新的默认值只会影响之后创建的映射类型。 mapping中的_default_可以与索引模板一起使用,用来控制自动创建的索引中动态创建的类型。 ``` PUT _template/logging { "template": "logs-*", #1 "settings": { "number_of_shards": 1 }, #2 "mappings": { "_default_": { "_all": { #3 "enabled": false }, "dynamic_templates": [ { "strings": { #4 "match_mapping_type": "string", "mapping": { "type": "text", "fields": { "raw": { "type": "keyword", "ignore_above": 256 } } } } } ] } }} PUT logs-2015.10.01/event/1{ "message": "error:16" } ``` | 1 | logging模板将匹配以logs-开头的任何索引。 | | 2 | 匹配的索引将会创建单个主分片。 | | 3 | 在新的映射类型中,_all字段将会被默认禁用。 | | 4 | 字符串字段将会被创建到名为text的主字段和一个 keyword.raw字段中。 | 原文链接 : [https://www.elastic.co/guide/en/elasticsearch/reference/5.3/default-mapping.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/default-mapping.html)(修改该链接为官网对应的链接) 译文链接 : [http://www.apache.wiki/pages/viewpage.action?pageId=9405471](http://www.apache.wiki/pages/viewpage.action?pageId=9405471)(修改该链接为 **ApacheCN** 对应的译文链接) 贡献者 : [曾少峰](/display/~zengshaofeng),[ApacheCN](/display/~apachecn),[Apache中文网](/display/~apachechina)