_default_ mapping(mapping中的_default_)
在一个将被用于映射任何类型的基本mapping中,在创建索引 时或者调用 PUT mapping API时,我们可以通过添加一个名为_default_的映射类型来定制一个索引。
PUT my_index
{
"mappings": {
"_default_": { # 1
"_all": {
"enabled": false
}
},
"user": {}, # 2
"blogpost": { # 3
"_all": {
"enabled": true
}
}
}
}
Tips
当使用PUT mapping 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字段中。
Last updated
Was this helpful?