_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
      }
    }
  }
}

1

在mapping的_default_中,将_all字段设置为禁用,该mapping中的所有类型的_all字段默认为禁用。

2

user类型从_default_中继承相关设置。

3

blogpost类型覆盖相关默认值,并且启用_all字段。

Tips

当使用PUT mapping API更新mapping的_default_时,新的mapping不会与现有的mapping合并。相反,新的mapping的_defalut_会替换现有的。

虽然mapping的_default_可以在索引创建后更新,但是新的默认值只会影响之后创建的映射类型。

mapping中的_default_可以与索引模板一起使用,用来控制自动创建的索引中动态创建的类型。

1

logging模板将匹配以logs-开头的任何索引。

2

匹配的索引将会创建单个主分片。

3

在新的映射类型中,_all字段将会被默认禁用。

4

字符串字段将会被创建到名为text的主字段和一个 keyword.raw字段中。

Last updated

Was this helpful?