Elasticsearch前沿:ES 5.x改进详解与ES6展望

本文深入介绍了Elasticsearch 5.x版本的改进,包括append-only索引模式提升索引性能,range字段类型增强查询功能,以及_all字段的移除。此外,文中还探讨了ES6的新特性,如顺序号支持、无缝滚动升级和对稀疏性Doc Values的优化。此外,Elasticsearch将支持SQL查询和更强大的机器学习功能。
摘要由CSDN通过智能技术生成

导读:本文介绍 Elasticsearch 最新的动态,包括 ES 5.x 改进详解与 ES6 展望,由曾勇在高可用架构群分享,转载请注明来自高可用架构公众号。

0?wx_fmt=png曾勇(Medcl),Elastic 工程师与布道师,2015 年加入 Elastic 公司。加入 Elastic 之前,在搜索和运维等方面积累了超过七年的经验。Elasticsearch 国内首批用户,自 2010 年起就开始接触 Elasticsearch,是 ES 中文社区发起人,也是 Elastic 在中国的首位员工。

我最早是从 2010 年 3 月开始接触 Elasticsearch ,后面在 2015 年 9 月加入了 Elastic ,即 Elasticsearch 这款开源软件背后的公司,一直围绕在 ES 打转,也算是 ES 半个老司机了。

自去年 10 月正式发布 5.0 以来, Elasticsearch 又新增了不少东西,让我们一起来看一下都有哪些值得关注的特性和改进吧。

数据结构方面

首先是索引这块的改进,大家知道 ES 的数据支持增删改查,比如修改文档的时候其实是需要通过 ID 找到 Lucene 文件里对应的文档先删除然后再插入一个新的,所有写操作需要进行相应的版本检查来确保没有冲突。

如果你的场景是日志,那么基本上数据进去之后是不需要进行修改的,所以现在 ES 新增了一个 append-only 的索引模式,也就是当 ES 是自动生成 ID 的时候, ES 可以跳过不必要的版本检测,大概可以提升 20% 左右的索引性能。

我们来看一组前后对比图吧,单这一块的提升还是可圈可点的。

0?wx_fmt=png

在数据结构方面,新增了多个 range 字段类型,有什么用呢,现在你可以计算连续数据的交并集,可以是时间范围,也可以是数值范围。

比如数据存放的是会议信息,航班有一个 range 字段,里面存的是会议的开始和结束时间,你通过对应的 range 查询可以很方便的查询,得到某个时间点哪些会议同时正在进行,那段时间会议室有空闲,可以预订等等。

常见的场景,比如日历,电视节目单。

0?wx_fmt=png

0?wx_fmt=png

怎么使用呢?看例子会比较清晰一点。

首先看看怎么定义吧,下面的这个例子, mapping 里面设置字段的 type 为 date_range 即表示一个时间的范围字段:

0?wx_fmt=png

然后我们插入一些数据,可以看到指定的是一个范围,有起始值。

0?wx_fmt=png

查询呢?

0?wx_fmt=png

大概就是这么简单。

下一个特性值得介绍的就是 _all 字段的移除

关于 _all 这个字段,场景其实就是为了满足快速检索的需求,当你不知道 mapping 里面有什么字段的情况下,你也能够自由的进行搜索, 所以为了实现这个需求,就有一个 _all 字段,它会把其他字段的内容都拷贝到这个字段里面,然后都当成 string 类型来处理,所以就存在了数据的冗余了,另外数字当成 string 也不能很好的压缩,并且都在 _all 一个字段,所以只能用一种分析器,在高亮的时候也是对这个 _all 字段进行的高亮,而不是真实的字段值,显示起来效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值