都2023了!我不允许你还不了解AIGC!立即报名 了解详情
写点什么

开源搜索引擎 Elasticsearch 5.0 版本正式发布

  • 2016-11-01
  • 本文字数:1622 字

    阅读完需:约 5 分钟

近日,Elastic 在官方博客中宣布,Elasticsearch 5.0 正式发布。该版本基于Lucene 6.2.0,已经在 Elastic Cloud 上完成了部署。据称,这是迄今为止最快、最安全、最易用的版本。

Elasticsearch 5.0 带来了许多增强功能和新特性,主要包括:

  • 索引性能:得益于多项改进,其中包括更好的数值型数据结构,索引吞吐量大幅提升。根据应用场景的不同,索引吞吐量提升在 25% 到 80% 之间。
  • Ingest 节点:向 Elasticsearch 添加数据更简单了。Logstash 是一个强大的工具,而一些较小的用户只需要过滤器,不需要它所提供的众多路由选项。因此,Elastic 将一些最流行的 Logstash 过滤器(如 grok、split)直接在 Elasticsearch 中实现为处理器。多个处理器可以组合成一个管道,在索引时应用到文档上。
  • Painless 脚本:Elasticsearch 中很多地方用到了脚本,而出于安全考虑,脚本在默认情况下是禁用的,这令人相当失望。为此,Elastic 开发了一种新的脚本语言 Painless。该语言更快、更安全,而且默认是启用的。不仅如此,它的执行速度是 Groovy 的 4 倍,而且正在变得更快。Painless 已经成为默认脚本语言,而 Groovy、Javascript 和 Python 都遭到弃用。要了解有关这门新语言的更多信息,请点击这里
  • 新数据结构:Lucene 6 带来了一个新的 Points 数据结构 K-D 树,用于存储数值型和地理位置字段,彻底改变了数值型值的索引和搜索方式。基准测试表明,Points 将查询速度提升了 36%,将索引速度提升了 71%,而占用的磁盘和内存空间分别减少了 66% 和 85%(参见“在 5.0 中搜索数值”)。
  • 搜索和聚合:借助即时聚合,Kibana 图表生成速度显著提升。Elastic用一年的时间对搜索API 进行了重构,Elasticsearch 现在可以更巧妙地执行范围查询,只针对已经发生变化的索引重新计算聚合,而不是针对每个查询从头开始重新计算。在搜索方面,默认的相关性计算已经由TF/IDF 换成了更先进的 BM25 补全建议程序经过了完全重写,将已删除的文档也考虑了进来。
  • 更友好:Elasticsearch 5.0 更安全、更易用。他们采用了“尽早提示”的方法。如果出现了问题,则新版本会及早给出提示。例如,Elasticsearch 5.0 会严格验证设置。如果它不能识别某项设置的值,就会给出提示和建议。不仅如此,集群和索引设置现在可以通过 null 进行解除。此外,还有其他的一些改进,例如, rollover shrink API 启用了一种新的模式来管理基于时间的索引,引入新的 cluster-allocation-explain API ,简化索引创建。
  • 弹性:Elasticsearch 分布式模型的每一部分都被分解、重构和简化,提升了可靠性。集群状态更新现在会等待集群中的所有节点确认。如果一个“复制片(replica shard)”被“主片(primary)”标记为失败,则主片会等待“主节点(master)”的响应。索引现在使用数据路径中的 UUID,而不是索引名,避免了命名冲突。另外,Elasticsearch 现在进行启动检查,确保系统配置没有问题。配置比较麻烦,但如果只是试用,开发人员也可以选择 localhost-only 模式,避免繁琐的配置。另外,新版本还增加了断路器及其他一些软限制,限制请求使用的内存大小,保护集群免受恶意用户攻击。

此外,该版本还提供了一个底层的Java REST/HTTP 客户端,可以用于监听、日志记录、请求轮询、故障节点重试等。它使用Java 7,将依赖降到了最低,比Transport 客户端的依赖冲突少。而在基准测试中,它的性能并不输于Transport 客户端。不过,这是一个底层客户端,目前还没有提供任何查询构建器或辅助器。它的输入参数和输出结果都是JSON。

需要注意的是,该版本引入了许多破坏性更改,好在他们提供了一个迁移辅助插件,可以帮助开发人员从Elasticsearch 2.3.x/2.4.x 迁移到Elasticsearch 5.0。如果是从更早的Elasticsearch 版本向最新的5.0 版本迁移,则请查阅升级文档


感谢杜小芳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-11-01 19:007468
用户头像

发布了 1008 篇内容, 共 358.8 次阅读, 收获喜欢 334 次。

关注

评论

发布
暂无评论
发现更多内容

大家看看我这个斜杠青年够斜吗?

伯薇

个人成长 斜杠青年 能力提升 好奇心 T型人才

阿里29大开源项目看看你都用过哪些

Bruce Duan

架构师们必备的三三制需求分析思维模型

常平

下一个阶段,就真的容易了吗?

ke_lv

生活

聊聊数据库原理和索引结构:1000万条数据优化后为什么能提升1500倍

牧码哥

MySQL 数据库 数据结构 性能优化 索引结构

从Integer开始阅读JDK源码

指尖流逝

Java jdk源码

我愿沉迷于学习,无法自拔(三)

孙瑜

深度思考 程序员 感悟

认识数据产品经理(一 数据产品经理的细分)

马踏飞机747

大数据 数据中台 数据分析 产品经理

树莓派小车系列-直播

波叽波叽啵😮一口盐汽水喷死你

树莓派 ffmpeg 云直播 盐汽水 raspberry

CEPH OSD Down故障分析与处理

木子

高仿瑞幸小程序 02 创建Tabbar

曾伟@喵先森

小程序 微信小程序 大前端 瑞幸

用 Vim 编辑 Markdown 时直接粘贴图片

mzlogin

vim markdown

Redis学习笔记(概述)

编程随想曲

redis

Spring Cloud概述

会飞的猪

技术人员加薪二三事

南方

管理 职场 技术管理 加薪 劈空掌

我看拼多多黄峥:旧世界瓦解冰消

池建强

拼多多 黄峥

Boyer-Moore 算法

Kenn

算法 数组 Boyer-Moore

每天一道 python 面试题 - Python中的元类(metaclass) 详细版本

志学Python

python 爬虫 python元类

[计算机网络1]我所知道的关于TCP的一切

海神名

TCP 计算机网络 网络协议 原理

找工作不得不知道的事

熊斌

认知提升 求职

扩展Redis:增加Redis命令

心平气和

redis

iOS Release 版本开启调试功能

liu_liu

ios release 调试

科学治疗“知识焦虑症”

陈驰远

个人成长 知识管理

百度开源项目

Bruce Duan

KubeFATE: 用云原生技术赋能联邦学习(二)

亨利笔记

Kubernetes 云原生 k8s FATE KUBEFATE

leetcode1137:第 N 个泰波那契数

Damien

算法 LeetCode 斐波那契

译文MapReduce:大型集群上的简化数据处理

海神名

mapreduce 译文 MIT 分布式计算

Java并发编程系列——线程池

孙苏勇

Java Java并发 并发编程 多线程 线程池

Dubbo 概述

会飞的猪

动画设计的十个原则

养牛致富带头人

设计 动画

DDD 实践手册(3. Entity, Value Object)

Joshua

系统设计 领域驱动设计 系统架构 架构模式

  • 需要帮助,请添加网站小助手,进入 InfoQ 技术交流群
开源搜索引擎Elasticsearch 5.0版本正式发布_语言 & 开发_谢丽_InfoQ精选文章