ElasticSearch 发布最新的 8.16 版本,该版本的完整发行说明请看
https://www.elastic.co/guide/en/elasticsearch/reference/8.16/release-highlights.html
新版本发行包下载地址:
https://www.elastic.co/cn/downloads/elasticsearch
值得关注的改进内容包括:
-
ESQL
INLINESTATS
命令:- 新增了
INLINESTATS
命令,该命令执行统计(STATS)操作并将结果丰富到输出流中。例如,使用INLINESTATS
可以输出每个分组的最大乘积值,并在查询结果中包含这些统计数据。
- 新增了
-
默认允许重新平衡(Rebalancing):
- 在早期版本的 Elasticsearch 中,默认的
cluster.routing.allocation.allow_rebalance
设置为indices_all_active
,这在集群健康状态为黄色或红色时会阻止所有重新平衡操作。从8.16版本开始,默认设置更改为always
,除非明确启用了旧的分配器。
- 在早期版本的 Elasticsearch 中,默认的
-
数据流生命周期中的全局保留(Global Retention):
- 数据流生命周期现在支持在集群级别配置保留策略,即全局保留。可以配置两个不同的保留策略:
data_streams.lifecycle.retention.default
:应用于所有未在数据流级别定义保留的数据流。data_streams.lifecycle.retention.max
:应用于所有数据流,允许在max_retention
时间过后删除任何数据流数据。
- 数据流生命周期现在支持在集群级别配置保留策略,即全局保留。可以配置两个不同的保留策略:
-
ZStandard 压缩:
- 在
index.codec
设置为best_compression
的索引中,之前使用 DEFLATE 压缩存储字段,现在更改为使用 ZStandard 压缩算法。ZStandard 压缩可以减少存储使用量,并提供类似的索引吞吐量,实验表明 ZStandard 相比 DEFLATE 可以降低约 12% 的存储使用,并提高约 14% 的索引吞吐量。
- 在
-
ESQL 中的聚合过滤器(Per agg filter):
- 增加了对聚合作用域过滤器的支持,这些过滤器可以在每个分组的数据上动态工作。
-
支持多值字段在地理空间(Geospatial)谓词中:
- 支持在
WHERE
谓词中使用多值字段,这在空间谓词ST_INTERSECTS
和ST_DISJOINT
中是隐含的,因为这些谓词本身决定了是使用ANY
还是ALL
。
- 支持在
-
增强 SORT 推送到 Lucene:
- 增强了将排序操作推送到 Lucene 的能力,以覆盖对字段的引用和
ST_DISTANCE
函数。这可以显著提高性能,尤其是在执行地理空间排序查询时。
- 增强了将排序操作推送到 Lucene 的能力,以覆盖对字段的引用和
-
跨集群搜索遥测(Cross-cluster search telemetry):
- 收集跨集群搜索的遥测数据,并在
_cluster/stats
输出中作为 "ccs" 字段返回。同时,_cluster/stats
API 新增了include_remotes=true
参数,用于收集连接的远程集群的数据。
- 收集跨集群搜索的遥测数据,并在
这些变化涵盖了查询优化、集群管理、数据保留策略、压缩算法改进、地理空间查询增强等多个方面,旨在提高 Elasticsearch 的性能、灵活性和易用性。