搜索引擎Elasticsearch 8.x 正式发布!
优采云 发布时间: 2022-05-01 01:28搜索引擎Elasticsearch 8.x 正式发布!
Elasticsearch 是一个基于 Lucene 库的搜索引擎。它提供了一个分布式、支持多租户的全文搜索引擎,具有 HTTP Web 接口和无模式 JSON 文档。Elasticsearch 是用 Java 开发的,并在 Apache 许可证下作为开源软件发布。官方客户端在 Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby 和许多其他语言中都是可用的。
时隔近三年,Elasticsearch 8 正式发布,新增的功能包括:
7.x REST API 兼容性
8.0 为 Elasticsearch REST APIs 引入了一些重大的变化。虽然更新你的应用程序以适应这些变化十分重要,但在升级后寻找和更新每一个 API 调用可能对开发者而言十分痛苦且容易出错。为了使这个过程变得更加容易,Elasticsearch 已经在 REST API 中增加了对 7.x 兼容性 header 的支持。这些可选的 header 文件让你向 8.0 集群发出 7.x 兼容的请求,并收到 7.x 兼容的响应。
虽然官方仍然建议开发者更新你的应用程序以使用原生的 8.0 请求和响应,但 7.x API 兼容 header 文件让你可以在更长的时间内安全地进行这些更改。
安全功能在默认情况下被启用和配置
bin/elasticsearch-reset-password -u elastic<br style="outline: 0px;" />
bin/elasticsearch-create-enrollment-token -s kibana
更好地保护系统索引
系统索引为 Elastic 功能存储配置和内部数据。一般来说,系统索引仅保留供这些功能内部使用。虽然有可能,但直接访问或改变系统索引会导致不稳定和其他问题。
在 Elasticsearch 8.0 中做了一些改变来保护系统索引不被直接访问。要访问系统索引的话,用户现在必须把allow_restricted_indices权限设置为true。
superuser角色也不再给予系统索引的写入权限。因此,内置的elasticsuperuser 默认不能改变系统索引。
此后,开发者应使用 Kibana 或相关的 Elasticsearch APIs 来管理某个功能的数据,而不是访问系统索引。如果你直接访问系统索引,Elasticsearch 将在 API 响应的 header 中和废弃日志中返回警告。
新的 KNN 搜索 API为keyword、match_only_text和text字段节省存储空间
该版本更新了倒排索引,这是一个内部数据结构,可以使用更节省空间的编码。这一变化将使keyword、match_only_text字段以及text字段受益。在使用应用程序日志的基准测试中,这一转变为message字段(映射为match_only_text)的索引大小减少了 14.4%,总体上减少了 3.5% 的磁盘占用空间。
加快geo_point、geo_shape和范围字段索引速度
新版本优化了多维点(multi-dimensional points)的索引速度,多维点是用于geo_point、geo_shape和范围字段的内部数据结构。Lucene 级别的基准测试显示,这些字段类型的索引速度提高了 10-15%。主要由这些字段组成的 Elasticsearch 索引和数据流可能会在索引速度方面有显著的改进。
PyTorch 模型支持自然语言处理(NLP)
现在可以上传在 Elasticsearch 之外训练的 PyTorch 模型,并使用它们进行推理。第三方模型支持为 Elastic Stack 带来了现代自然语言处理(NLP)和搜索用例。
其他变化