查看原文
其他

Elasticsearch 7 正式发布

h4cd 开源中国 2019-04-27

Elastic Stack 7.0.0 已正式发布,Elasticsearch 作为 Elastic Stack 的核心,它是一个分布式、面向文档的 RESTful 风格搜索和数据分析引擎,它支持结构化和非结构化查询,并且不需要提前定义模式。Elasticsearch 可用作搜索引擎,通常用于 Web 级日志分析、实时应用监控和点击流分析。

此版本从超过 10 000 个 PR 中蜕变而来,带来了一些重大改变。

Kibana 7.0:全新的设计和导航,以及暗黑模式

开发团队将设计重点放在了内容上,所以 Elasticsearch 分析和搜索仪表板 Kibana 在新版本中变得更加轻量。最突出的变化是切换到了新的全局导航,它引入了一个固定头部来切换 Kibana 空间、显示卡片,以及启动用户操作,如更改密码或注销。

为实现这一目标并提高一致性,开发团队创建了 Elastic UI Framework,并且在过去的一年中,几乎将整个 Kibana 都切换到这个框架的组件上,同时对样式和样式表的应用方式进行了大幅简化。

做完这些之后,随之而来的是完成了对整个 Kibana 暗黑模式的支持,这是 Kibana 史上极大的一个功能要求。此外,一致性的提高和样式的简化,带来的另一个好处是 Kibana 仪表板现在具有响应式设计,这为显著提高移动设备可用性打下了基础。

Elasticsearch 集群协调新时代

作为 Elastic Stack 的核心,Elasticsearch 从一开始就致力于易扩展并适应灾难性故障。为了达到这些要求,开发团队做了许多努力,不仅使单个节点更具可扩展性和可靠性,还持续改进了集群协调层 Zen Discovery。在 7.0 版本中,这两个方面都有重大改进。

节点

Elasticsearch 中的各个节点在构建时考虑了弹性,如果向节点发送过多请求或请求过大,那么节点将 push back。这一点通过 Elasticsearch 中的断路器实现,它会判定节点无法处理给定的请求,并要求客户端重试。对于具有较小 JVM 堆大小的节点,随着用户转移到集群每租户(cluster-per-tenant)模型而不是大规模多租户集群,这些节点变得越来越普遍,节点的弹性显得更为重要。

在 7.0 中,引入了真正的内存断路器,它可以更精准地检测出无法处理的请求,并防止它们使单个节点不稳定。

Zen Discovery

Zen2 是 Elasticsearch 的全新集群协调层,它同时提高了可靠性、性能和用户体验,变得更快、更安全,并更易于使用。

当前有一些著名的共识算法,比如 Paxos、Raft、Zab 与 Viewstamped Replication(VR),但是 Elasticsearch 集群要求更高的集群变化吞吐量,还要支持轻松伸缩集群,并且滚动升级策略要允许系统无缝升级,这些要求是前边提到的算法无法达到的。

为实现这一目标,开发团队首先关注于新设计的分布式一致性算法的理论正确性。此外 Zen2 还包括许多可以降低人为错误可能性的变化,并提供了从灾难性故障中恢复时更清晰的选择。

相关性和速度改进

相关性和速度是良好搜索体验的基石, Elasticsearch 7.0 引入了几个基本功能对此进行优化:

  • 更快的前 k 个查询在许多搜索用例中,快速查看查询的前 k 个结果对于用户而言比确切的命中数更重要。例如,如果有人在电子商务网站上搜索产品,他们对 10 个最相关的结果更感兴趣,而不是与搜索查询匹配的其他 120 897 个结果。Elasticsearch 7.0 和 Lucene 8.0 实现了一种新算法 Block-Max WAND,可在巨幅提升检索命中前 k 个结果的速度。

  • 间隔查询诸如法律和专利搜索的一些搜索用例中,有查找单词或短语彼此相距一定距离的记录的需要,Elasticsearch 7.0 中的间隔查询引入了一种构建此类查询的全新方式,与之前的方法 span 查询相比,使用和定义更加简单,同时对边缘情况的适应性更强。

  • Function score 2.0自定义评分是高级搜索用例的基础,人们希望更好地控制相关性和结果排名,Elasticsearch 从早期就提供了这样的能力。7.0 引入了下一代 function score,提供了一种更简单、模块化与灵活的方式来生成每条记录的排名分数。新的模块化结构允许用户混合和匹配一组算术和距离函数,以构建任意函数分值计算,更好地控制结果的分值和排名。

此外,Elasticsearch 7.0 中还引入了一个新的聚合来处理地理地图图块,允许用户在地图上放大和缩小,而不会改变结果数据的形状,实现更加平滑地缩放 Elastic Maps;使用纳秒精度存储时序数据的时间戳,允许具有高频数据采集需求的用户可以更加精确地存储和排序他们的数据。

详情请查看「阅读原文」


开源中国征稿啦!


开源中国 www.oschina.net 是目前备受关注、具有强大影响力的开源技术社区,拥有超过 200 万的开源技术精英。我们传播开源的理念,推广开源项目,为 IT 开发者提供一个发现、使用、并交流开源技术的平台。


现在我们开始对外征稿啦!如果你有优秀的技术文章想要分享,热点的行业资讯需要报道等等,欢迎联系开源中国进行投稿。投稿详情及联系方式请参见:我要投稿



推荐阅读

Stack Overflow 2019开发者调查报告发布

Python之父:我们能为中国的“996”程序员做什么?

尴尬,微软的 PowerShell 竟是 Linux 用户最多

霸权?Google 阻止我写 Web 浏览器

Oracle 最后通牒:要 Java 8 更新先交钱

「在看」,安排↓↓↓

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存