Elasticsearch 7.0 正式发布,盘他!
Elastic{ON}北京分享了Elasticsearch7.0在Speed,Scale,Relevance等方面的很多新特性。
比快更快,有传说中的那么牛逼吗?盘他!
通过本文,你能了解到:
Elasticsearch&Kibana 7.部署体验
Elasticsearch7 革命性更新
Elasticsearch 7升级注意事项
Elasticsearch 版本更新太快了,学不动了,肿么办?
1、Elasticsearch&Kibana 7.部署体验
1.1 Elasticsearch 7.0 默认自带 JDK
不用再为安装什么版本的 JDK和环境冲突而苦恼了,下载安装即可使用。
对比可知,包大了200MB+,正是JDK的大小。
1.2 默认节点名称为主机名。
不过仍然可以在elasticsearch.yml中显式配置。
实际业务场景中,以主机名区分不同节点比随机起名字更便于甄别,不易混淆。
1.3 默认分片数改为1,不再是5。
1.4 Elasticsearch 7.0 没有 Type 了,包括 API 层面的。
如下所示,确切的说,正确的使用方法,使用默认的_doc作为type就可以了。
type会在8.X版本彻底移除。
1.5 hits.total返回对象,而非仅结果值
现在,与搜索请求匹配的总命中数将作为具有值和关系的对象返回。
value表示匹配的匹配数,
关系表示值是准确的(eq)还是非准确的(gte)。
1.6 Kibana 支持全局开启“黑暗”模式
用户可以选择打开主题:Kibana->高级设置->dark Mode,而不是必须在很多地方打开黑暗模式,它将适用于所有应用程序。
2、Elasticsearch7 革命性更新
2.1 查询相关性速度优化
Weak-AND算法在Term Query查询场景有3700%的性能提升。
如下所示,除了Term检索,Fuzzy,Phrase, Bool And .Bool OR都有大幅的性能提升!
啥是weak-and算法?
核心原理:取TOP N结果集,估算命中记录数。
简单来说,一般我们在计算文本相关性的时候,会通过倒排索引的方式进行查询,通过倒排索引已经要比全量遍历节约大量时间,但是有时候仍然很慢。
原因是很多时候我们其实只是想要top n个结果,一些结果明显较差的也进行了复杂的相关性计算,
而weak-and算法通过计算
每个词的贡献上限来估计文档的相关性上限,从而建立一个阈值对倒排中的结果进行减枝,从而得到提速的效果。
2.2 间隔查询(Intervals queries)
某些搜索用例(例如,法律和专利搜索)引入了查找单词或短语彼此相距一定距离的记录的需要。
Elasticsearch 7.0中的间隔查询引入了一种构建此类查询的全新方式,与之前的方法(跨度查询span queries)相比,使用和定义更加简单。
与跨度查询相比,间隔查询对边缘情况的适应性更强。
2.3 引入新的集群协调子系统
移除 minimum_master_nodes 参数,让 Elasticsearch 自己选择可以形成仲裁的节点。
典型的主节点选举现在只需要很短的时间就可以完成。
集群的伸缩变得更安全、更容易,并且可能造成丢失数据的系统配置选项更少了。节点更清楚地记录它们的状态,有助于诊断为什么它们不能加入集群或为什么无法选举出主节点。
2.4 升级 Elasticsearch 7,0 ,不再内存溢出
新的 Circuit Breaker 在JVM 堆栈层面监测内存使用,Elasticsearch 比之前更加健壮。
设置indices.breaker.fielddata.limit的默认值已从JVM堆大小的60%降低到40%。
2.5 时间戳纳秒级支持,提升数据精度
利用纳秒精度支持加强时间序列用例
到目前为止,Elasticsearch仅以毫秒精度存储时间戳。 7.0增加了几个零并带来了纳秒精度,这提高了高频数据采集用户存储和排序所需数据的精度。
显然,7.0的特性远不止这些,更多新版本特性推荐阅读:
http://t.cn/EXyStrW
http://t.cn/EXyStrO
3、Elasticsearch 7升级注意事项
3.0 升级前必知必会
查看新版本的重大更改特性,并对7.0.0的代码和配置进行必要的更改。
如果您使用自定义插件,请确保兼容版本可用。
在升级生产集群之前,在开发环境中测试升级。
备份您的数据! 您必须拥有数据快照才能回滚到早期版本。
3.1 升级API
Rolling upgrade ——滚动升级允许Elasticsearch集群一次升级一个节点,升级不会中断服务。
不支持在升级期间在同一群集中运行多个版本的Elasticsearch,因为无法将已升级的节点复制到运行旧版本的节点。
3.2 版本升级路线
小版本之间升级:举例:5.4.1升级到5.6
平滑升级——从5.6版本到6.7版本
平滑升级——从6.7版本到7.0.0版本
3.3 借助Reindex升级索引数据
Elasticsearch可以读取在先前主要版本中创建的索引。如果您在5.x或之前创建了索引,则必须在升级到7.0.0之前重新索引或删除它们。
如果存在不兼容的索引,Elasticsearch节点将无法启动。
3.4 ELK Stack要一起升级
升级到新版本的Elasticsearch时,需要升级Elastic Stack中的每个产品。
3.5 6.6或更早版本集群,需要先关闭
要从6.6或更早版本直接升级到7.0.0,必须关闭群集,安装7.0.0并重新启动。
3.6 切记,7.0+版本`无type`的索引结构。
这点,如果考虑未来更新版本,在6.X或者更早版本的项目中,就严格按照7.x规范走,这样升级会相对比较省事。
4、Elasticsearch 版本更新太快了,学不动了,肿么办?
一方面,我们感叹ES的更新速度,的确从2016年的2.X到2019年的7.0,版本更新速度超乎想象。
另一方面,实际业务开发中,还在使用1.X,2.X,5.X,甚至还没有用过6.X的朋友非常多,小伙伴不禁有了“学不动了”的感慨。
4.1 新版本的变
变是永恒的,尤其是基于开源软件加上上市公司的推动。
实际上,高版本较低版本,主要在性能上的提升和部分新功能点的实现。
新版本更高效。
比如:6.6+提出的ilm索引生命周期管理,你如果关注Elastic Meetup的话,印象ebay和阿里还有其他公司自己就实现过类似功能。原有版本有类似的功能,只不过是非常、非常麻烦、繁琐,所以,才有了ilm的诞生。
新版本迎合了市场的需求。
比如:7.0的黑暗模式,实际在grafana或类似竞品BI中都有类似的功能,猜测Kibana升级一方面是用户需求,另一方面也是竞品分析的结果。新版本性能极大提升。
比如:7.0的terms融合新算法,有37倍的提升。
4.2 新版本的不变
《暗时间》作者刘未鹏说过“底层的技术永远不过时”。
不必说倒排索引机制不会变,也不必说Lucene的改动也相对较小。单是:ES的基础功能全文检索、多种聚合等几乎不会有太大的变动。
4.3 还存在学不动吗?
夯实打牢基础基本功,理解ELK更新的变与不变。80-90%+的时间关注基础,10%左右的时间关注增量的变化即可。
以不变应万变,方为生存之道!
参考:
http://t.cn/EXySp7K
http://t.cn/EMg3uRw
更多阅读:
重磅 | 死磕Elasticsearch方法论认知清单(2019春节更新版)
干货 | BAT等一线大厂 Elasticsearch面试题解读
https://elastic.blog.csdn.net/
加入星球,更短时间更快习得更多干货!
原文地址:https://mp.weixin.qq.com/s/EJQilAy4pLS3fAqBgYZhDA
Elasticsearch 7.0 正式发布,盘他!的更多相关文章
- Spring Boot 2.4.0 正式发布!全新的配置处理机制,拥抱云原生!
2020年11月12日,Spring官方发布了Spring Boot 2.4.0 GA的公告. 在这个版本中增加了大量的新特性和改进,下面我们一起看看在这个重要版本中都有哪些值得关注的内容! 更新内容 ...
- Elasticsearch 5.0 中term 查询和match 查询的认识
Elasticsearch 5.0 关于term query和match query的认识 一.基本情况 前言:term query和match query牵扯的东西比较多,例如分词器.mapping ...
- 在Windows上安装Elasticsearch 5.0
在windows上安装Elasticsearch Elasticsearch可以使用.zip软件包安装在Windows上. elasticsearch-service.bat命令,它将设置Elasti ...
- AppBox_v2.0完整版免费下载,暨AppBox_v3.0正式发布!
文章更新: AppBox v6.0中实现子页面和父页面的复杂交互 AppBox 是基于 FineUI 的通用权限管理框架,包括用户管理.职称管理.部门管理.角色管理.角色权限管理等模块. AppBox ...
- Socket.IO 1.0 正式发布,快速可靠的实时引擎
Socket.IO 是目前 Web 领域最火的实时引擎,用于实现基于事件的双向实时的通信.它适用于任何平台,浏览器或设备,专注于可靠性和速度.您可以将数据推送到客户端,并获得实时的计数,日志或图表. ...
- Django 1.6.0 正式发布,大幅改进事务处理
Django 1.6.0 正式发布了,查看官方发行说明. 下载地址:Django-1.6.tar.gz ,也可通过 pip 安装: pip install Django==1.6 要求 Python ...
- Elasticsearch 5.0
Elasticsearch 5.0 使用ES的基本都会使用过head,但是版本升级到5.0后,head插件就不好使了.下面就看看如何在5.0中启动Head插件吧! 官方粗略教程 Running wit ...
- Apache Spark2.0正式发布
Apache Spark2.0正式发布 7月26日起Databricks开始提供Apache Spark 2.0的下载,这个版本是基于社区在过去两年的经验总结而成,不但加入了用户喜爱的功能,也修复了之 ...
- 【G-BLASTN 1.0正式发布】
[G-BLASTN 1.0正式发布]G-BLASTN使用GPU来加速NCBI-BLAST里的BLASTN模块,单块GTX780比四核CPU平均快6倍. http://www.comp.hkbu.edu ...
随机推荐
- Notepad++如何编译、运行Java
首先要让Notepad++编译和运行Java,前提是电脑里已经配置好了Java的环境(这里可以参考我博客里关于Java环境配置的那篇随笔). 在Notepad++上面的选项栏中找到 插件---> ...
- Red Hat Linux分辨率调整
在/etc/X11下手动产生xorg.conf文件, # vi /etc/X11/xorg.conf 文件中内容如下: ##Add the following codes: Section " ...
- 获得拼凑SQL语句运行后的结果
拼凑式的SQL语句太普遍了,比如说,任意条件的查询. 这种拼凑SQL语句,如果在数据库端组装,必然是一条长长的字符串,然后 exec(@sql). 如果这条语句写在存储过程里边,存储过程的调用方会获得 ...
- 64位只有一种调用约定stdcall
procedure TForm2.Button1Click(Sender: TObject); function EnumWindowsProc(Ahwnd: hwnd; AlParam: lPara ...
- hdoj-1827-Summer Holiday(scc+缩点)
Summer Holiday Time Limit: 10000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 【转】学会这13个原则写UI界面文案,用户才能秒懂
原文网址:http://www.niaogebiji.com/article-12011-1.html 摘要: 首先,在写UI文案之前,为了理清思路,要先搞清楚三个问题:我(设计师)想让用户做什么? ...
- 【BZOJ3926】【ZJOI2015】诸神眷顾的幻想乡 广义后缀自动机
题目: 题目在这里 思路&做法: 参考的题解 既然只有\(20\)个叶子节点, 那么可以从每个叶子节点往上建一颗\(trie\)树, 然后合并成一棵大的\(trie\)树, 然后构建广义后缀自 ...
- 最详细的CentOS 6与7对比(三):性能测试对比
本主题将从3个角度进行对比 常见设置(CentOS 6 vs CentOS 7) 服务管理(Sysvinit vs Upstart vs Systemd) 性能测试(cpu/mem/io/oltp) ...
- BZOJ 2073
思路: 状压DP 枚举子集 //By SiriusRen #include <cstdio> #include <cstring> #include <algorith ...
- 使用jQuery对图片进行居中设置
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...