在目前的项目中搜索引擎是我们常用的组件。在java项目里面我们使用到最多的也就是elasticsearch和solr。但是目前最火的还是elasticsearch。所以这里我们开启介绍elasticsearch的篇章。
现在elasticsearch已经发展到7的版本了。整个elasticsearch的大版本主要有:elasticsearch1.x,elasticsearch2.x,elasticsearch5.x,elasticsearch6.x,elasticsearch7.x。目前使用最多的还是5.x,6.x,7.x,尤其近一年,我们线上的项目都已经升级到7.x了。
下面我们介绍下5.x,6.x,7.x的区别:
1)index下type的区别
5.x版本支持一个index里面包含多个type,每个type名称可以自定义。 6.x版本支持一个index里面只能有一个type,这个type的名称可以自定义。 7.x版本支持一个index里面只能有一个type,这个type的名称是固定的_doc,不能自定义
2)客户端版本的区别
5.x版本支持TransportClient,可以同时使用tcp和http进行连接请求。 6.x版本支持TransportClient,可以同时使用tcp和http进行连接请求。 7.x版本只支持restclient,并且只支持使用http进行连接请求。这里的restclient建议使用High-level-rest-client
3)部署里面的jdk
5.x版本的部署包里面没有包含jdk包 6.x版本的部署包里面没有包含jdk包 7.x版本的部署包里面自带jdk包
4)zen选举的变化
5.x版本使用zen进行选举 6.x版本使用zen进行选举 7.x版本使用zen2进行选举
zen和zen2的选举原理其实都是一样的,zen主要体现在加入集群的时候会有一定的延迟,用来放置配置文件被错误修改。zen2选举可以在1秒内加入集群。极大的扩展了整个集群的可用性。
5)查询性能优化
7.x版本使用Weak-AND算法提升了查询性能。
Weak-AND算法只要是估算整体的命中率,例如:我们传统查询的时候,select count(id) 会全表遍历或者全索引遍历。Weak-AND算法是进行一个估算,所以这里的值和总体的值会略少一些,表现的不太精确。这种场景应用于top-N的场景里面。提升了查询效率。
以上,暂时列举这些,其他的不常见。
还没有评论,来说两句吧...