Elasticsearch移除类型(type)的时间表
对于es的用户来说这是一个非常大的变化,所以官方让这件事情尽可能的做到无痛。这个变化将逐步演进:
Elasticsearch 5.6.0
- index.mapping.single_type设置为true后,索引将像6.x版本一样开启单type特性。
- 替代父子关系的join 字段在5.6里创建的索引是可用的
Elasticsearch 6.x
- 5.x创建的索引在6.x里继续有效,就像在5.x一样
- 在6.x里新建的索引只允许单个类型。这个类型可以被命名成任何名字,但是只能有一个类型。推荐的名字是_doc,这样index API 就和7.0里有一样的路径了:PUT {index}/_doc/{id} 和 POST {index}/_doc
- _type字段不再和_id一起组合成_uid字段了,_uid字段成为_id字段的别名
- 新的索引不再支持旧风格的父子关系,应该使用join 字段代替。
- default 映射类型变为舍弃的
- 在6.7,索引创建、索引模板、映射API支持一个查询参数(include_type_name),用来指示请求和响应是否包含一个tpye名字.默认值是true,对于准备升级到7.0的应该显式设置其值。不设置include_type_name 会导致一个警告。没有使用指定type的索引,将使用一个假定的名字_doc。
Elasticsearch 7.x
- 在请求中指定类型是不推荐的。因此,索引一个文档不再需要一个文档类型。新的索引文档API是PUT {index}/_doc/{id} (需要指定明确的id时)和POST {index}/_doc (自动生成id时)
- include_type_name 参数再索引创建、索引模板、映射API中默认值为false。任何时刻设置这个参数将导致一个过期警告。
- default 映射类型被移除
Elasticsearch 8.x
- 在请求里指定类型将不在被支持
- include_type_name 参数被移除