原英文版地址: https://www.elastic.co/guide/en/elasticsearch/reference/7.7/release-highlights.html, 原文档版权归 www.elastic.co 所有
本地英文版地址: ../en/release-highlights.html

7.7版本的新特性

这里特别强调一下 Elasticsearch 7.7 的一些新特性和改进! 关于此发行版的详细信息, 请参阅 发行说明突破性的改变.

其他版本: 7.6 | 7.5 | 7.4 | 7.3 | 7.2 | 7.1 | 7.0

修复收缩索引时索引奔溃的问题

在索引 收缩 (shrunk) 后对其进行删除或更新操作可能会损坏索引。 我们建议使用 Elasticsearch 6.x 的用户在一些索引上选择软删除,并建议 ElasticSearch 7.x 的所有用户尽快升级到7.7,以摆脱此奔溃bug的影响。 如果近期无法升级,我们建议完全停止在读-写索引上使用收缩,并在收缩只读索引后立即进行强制合并,这将大大降低了在删除或错误应用更新时受此错误影响的可能性。 这个bug在 Elasticsearch 7.7.0 版本中修复了。 更详细的信息参考 相关问题.

大大地减少段使用的堆内存

这个版本的 ElasticSearch 大大地减少了保持 Lucene 段打开所需的堆内存量。 这除了有助于集群的稳定性,还有助于降低成本,因为在内存达到上限前,每个节点可以存储更多的数据。

转换 – 现在在正式版本中了!

在 7.7 中,我们将转换 (transforms)从 beta 版本迁移到正式版本(GA, general availability)。

转换(Transforms) 使您能够使用分组和聚合 将现有的 Elasticsearch 索引转置为目标特性索引,从而为新的洞察和分析提供了机会。 例如,你可以使用转换将数据转置为以实体为中心的索引,这些索引概括了用户或会话或数据中其他实体的行为。

转换(Transforms) 现在已经包含了对跨集群搜索的支持。 允许你在与源索引不同的集群上创建目标特性索引。

聚合支持已在 转换 中扩展,包括对多值(百分位数)和筛选聚合的支持。 在转换中已经扩展了对聚合的支持,包括多值multi-value(百分比)筛选聚合。 我们也对 日期直方图聚合 (date histogram aggregations) 的性能进行了优化。

引入 多类别分类(multiclass classification)

使用多个类别的 分类 现在可以在数据帧分析中使用。 分类是一种有监督的机器学习技术,在之前的版本中已经作为二进制过程提供。 多类别分类可以很好地处理多达30个不同的类别。

推理时的特征重要性

特征重要性现在可以在推理时计算。 该值提供了对分类或回归作业的结果的进一步了解,因此有助于解释这些结果。

更精细的桶聚合内存控制

当构建桶时,聚合会在继续分配更多桶之前周期性地检查实际内存断路器。 这允许更好地响应内存压力,并避免了OutOfMemory情况,因为分配的桶比节点所能处理的更多。 这允许对内存压力有更好的响应能力,并避免了由于分配了超过节点处理能力的桶而导致的OutOfMemory情况。

一种新的搜索方式:异步搜索

你现在可以使用 _async_search API 来执行一个 长时搜索(long-running searches)。 这个新的 API 接受 与 Search API 相同的参数和请求体。 但是,你可以在异步搜索结果可用时从异步搜索中检索结果,而不是阻塞住并在最终响应完全完成时才返回。

该请求有一个参数wait_for_completion,它控制服务器在返回响应之前将等待多长时间。 除其他外,第一个响应包含一个搜索唯一ID、一个响应版本号、指示该响应是否为部分响应,惯例要返回的元数据(所涉及的碎片、点击次数等)以及潜在的结果。 第一个响应包含搜索唯一ID、响应版本、该响应是否为部分响应的指示,以及通常的元数据(涉及的分片、命中的数量等)和潜在的结果。 如果响应不是完整的和最终的,客户端可以继续轮询结果,使用提供的搜索ID发出一个新请求。 如果有新的结果可用,则返回的版本将增加,并返回新的一批结果。 这可以一直进行到获取所有结果为止。

除非用户提前删除,否则异步搜索将在给定的时间间隔内保持活动状态。 这个时间间隔的默认值为5天,可以由另一个请求参数 keep_alive 控制。

密钥存储库的密码保护

Elasticsearch 为密码和SSL证书等安全设置使用一个自定义的保存在磁盘上的 密钥存储库(keystore)。 到目前为止,这阻止了具有 命令行访问权限 的用户通过 列出(list) 命令来查看安全文件,但是没有任何东西阻止这些用户更改密钥存储库中的值或从密钥存储库中删除值。 此外,这些值只是使用 hash 混淆了; 没有用户特定的秘密保护安全设置。

这个新特性通过向密钥存储库添加密码保护来改变所有这些。 这并不是一个重大的更改:如果密钥存储库没有密码,则不会有任何新的提示。 用户必须选择对其密钥存储库进行密码保护,以便从新的行为中受益。

一个新的聚合: top_metrics

新的 top_metrics 聚合根据给定的不同字段的标准从文档中“选择”一个度量。 该标准是当前最大或最小的“排序(sort)”值。 它在本质上与 top_hits 非常相似,但是因为它更有限,所以 top_metrics 使用的内存更少且通常更快。

基于时间的索引的排序查询的查询加速

我们优化了在基于时间的索引上运行的排序的、只针对顶级文档的查询。 这种优化源于分片中(文档)时间戳的范围不重叠这一事实。 如果可以确定查询不会产生当前分片的任何结果,则通过基于其他分片已有的部分结果重写分片搜索请求来实现; 如果可以确定不会从当前分片中得到任何查询结果,则通过基于其他分片中已经获得的部分结果重写分片搜索请求来实现; 也就是说,我们提前知道,在部分合并后(排序的)结果集的底部记录比当前分片中包含的值更好。

一个新的聚合:boxplot

四分位距(又称四分差。IQR, interquartile range) 是一种常用的统计离散度的稳健测量方法。 与标准差相比,IQR 对数据中的离群值不太敏感,分解点为0.25。 与中值一起,它通常用于创建箱形图,这是一种简单但常见的汇总数据和识别潜在异常值的方法。

这个新的 boxplot 聚合 计算给定数据集的最小、最大、中等以及第一和第三个四分位数。

AArch64 支持

Elasticsearch 现在提供了 AArch64 包,包括捆绑的一个 AArch64 JDK 发行版。 但是有一些限制,即没有机器学习支持,且根据底层页面大小,类数据共享被禁用。