1. string数据类型的变化
使用6.0.0,string替代为text和keyword两个数据类型,text支持分词,keyword不支持分词。
2. type的变化
在6.0.0中,一个index只支持1个type;而2.3.2支持同个index,多个type。
3. _delete_by_query的变化
在6.0.0中,可直接使用接口_delete_by_query;而2.3.2必须预先安装插件delete_by_query。
4. client节点的变化
在6.0.0中,不再存在client节点的概念,取而代之的是ingest节点,支持对数据的预处理;而2.3.2有client节点。
5. 脚本groovy的变化
在6.0.0中,groovy脚本替换为painless,原因是groovy存在安全风险。
6. 性能变化
磁盘空间少一半;indexing时间少一半;查询性能提升25%。
7. _reindex的变化
在6.0.0中,支持集群间reindex,也就是说支持跨集群索引迁移;而在2.3.2中,只支持集群内部reindex。
8. Java Client的变化
在6.0.0中,有了Java High Level和Low Level Rest Client,其中Java High Level Rest Client未来将会取代Java Transport Client,而Java Low Level Rest Client将会兼容所有Elasticsearch版本,这样方便Elasticsearch集群升级,而客户端代码改动较小。在2.3.2中,只有Java Transport Client或者通过Http接口实现。
9. 新增_shrink
在6.0.0中支持主分片的数目的收缩,收缩必须是因数;而2.3.2不支持。
10. 新增运行任务取消
在6.0.0中可以通过“POST tasks/node_id:task_id/cancel”方式取消任务的运行,支持取消任务,可以加快集群服务的恢复。而在2.3.2中,不支持该功能。
11. 僵尸索引的变化
在2.3.2中,我们会遇到如果一个节点挂了,当这个节点恢复后,即使这个节点上的索引已经被删除,还是会出现这个节点的索引,这个问题6.0.0不会再发生,因为集群状态会保存500个索引删除的信息,如果发现已经删除过的索引,不会再加进来。
12. _timestamp的变化
在6.0.0中,已被移除。
13. _ttl的变化
在6.0.0中,已被移除。
14. 创建索引不会再让集群RED
在6.0.0中,不再存在这个问题;而在2.3.2中,存在这个问题,导致大量误报。
15. _all的变化
在6.0.0中,默认关闭;在2.3.2中,默认开启。官网原话,
The _all field is not free: it requires extra CPU cycles and uses more disk space. For this reason, it is disabled by default. If needed, it can be enabled.