拓展:类型type的移除。
这里也要先提一下Elasticsearch的存储/体系结构,这样比较方便大家理解:
下表是ELasticsearch6.x之前的 Elasticsearch 与 MySQL 数据库逻辑结构概念的对比:
Elasticsearch 关系型数据库 Mysql
索引(index) 数据库(databases)
类型(type) 表(table)
文档(document) 行(row)
当然,这个结构在Elasticsearch7.x之前是毫无争议的;但是从Elasticsearch7.x就变了,这都是因为官方要移除类型Type,为什么呢?在网上看到的一个解答是说:
Elasticsearch是基于Lucene的。
如果在一个 index 内存了多个 type,且这些 type 之间只有极少共用的字段,会使得数据过于离散,从而影响 Lucene 的压缩性能。
从ELasticsearch6.x开始,Elasticsearch 引入了一个参数控制 type 开关:include_type_name=true,表示仍使用类型 type的概念。但每个索引只能存在一个类型type ,且官方推荐名为名字为【