Elasticsearch 8.0新特性
发布时间:2022-03-24 21:11:08

Elasticsearch 8.0

1Elastic 8.0 正式发布

2022 2 11 日,Elastic 8.0 正式发布。

Elastic 8.0 版通过改进 Elasticsearch 的矢量搜索功能、对现代自然语言处理模型的原生支持、不断简化的数据上线过程,以及精简的安全防护体验,在速度、扩展幅度、相关性和简便性方面,迎来了一个全新的时代。

Elasticsearch 8.0


这是距离 7.0 版本发布(2019410日)超过 1038 天(近 3 年)后的第一个大版本;

这是 7.X 版本更新了 17 个版本(7.0——7.17)后的第一个大版本;

这是 Elastic 创始人 Shay Banon CEO 回归 CTO 发布的第一个大版本;

这是基于 Lucene 9.0 的第一个版本;

.......


所以,Elastic 8.0 版本万众瞩目、非常期待!

2、宏观看 Elastic 8.0 新特性

可以简记为:

l  一个创新(NLP);

l  一个增强(向量检索);

l  两个简化(安全和 AWS 集成);

l  一个不变(为更大规模数据提供更快速度检索的初心不变)。

2.1 一个创新:新增了对自然语言处理模型 NLP 的原生支持。

Elasticsearch 始终是执行 NLP 的理想之选,但过去它需要在 Elasticsearch 之外进行一些处理,或编写一些相当复杂的插件。在 8.0 版中,用户现在可以直接在 Elasticsearch 中执行命名实体识别、情感分析、文本分类等,而无需使用额外的组件或进行编码。在 Elasticsearch 中原生计算和创建矢量,不仅在水平可扩展性方面取得了胜利(通过在服务器集群中分布计算资源来实现),这一变化还为 Elasticsearch 用户显著节省了时间和精力。

Elasticsearch

如上两图红色、绿色对比,7.X 版本的 NLP 机器学习模型需要借助第三方组件,8.0 版本 Elastic 自己全搞定。

l  细分创新 1:无需额外组件或编码即可实现:“命名实体识别”、“情感分析”、“文本分类”等 NLP 操作。

l  细分创新 2:用户可以直接在 Elasticsearch 中使用 PyTorch 机器学习模型(例如 BERT),并使用这些模型(自定义模型或 Hugging Face 社区模型)进行推理。

Elasticsearch

Elasticsearch

2.2 一个增强:增强了向量搜索功能。

l  带来了一整套原生矢量搜索功能。

l  NLP 的引入使得向量搜索更加实用。

l  ANN 的支持使得大规模数据下高速查询成为可能。

2.3 两个简化

遵循 Elastic slogan:“Simple things should be simple”简单的事情就该简单化。

2.3.1 简化1:安全配置再简化。

l  默认启用安全性防护。

l  自动生成令牌和证书。

2.3.2 简化2:集成了两个 AWS 服务。

随着 Elastic 8.0 的发布,我们进一步扩大了云原生集成,有两个新的 AWS 集成:

l  集成了一个新的 AWS Lambda 应用程序。

l  集成了一个新的 Amazon Simple Storage Service (Amazon S3) Storage Lens

2.4 一个不变

为更大规模数据提供更快速度检索的初心不变。

3、微观看 Elastic 8.0 新特性

3.1 REST API 兼容性

8.0 Elasticsearch REST APIs 引入了一些重大的变化。Elasticsearch 已经在 REST API 中增加了对 7.x 兼容性 header 的支持。这些可选的 header 文件让你向 8.0 集群发出 7.x 兼容的请求,并收到 7.x 兼容的响应。

3.2 安全功能在默认情况下被启用和配置

首次启动 Elasticsearch 时,会自动进行以下安全配置:

l  为传输层和 HTTP 层生成 TLS 证书和密钥。

l  TLS 配置设置被写入elasticsearch.yml

l  elastic 用户生成密码。

l  Kibana 生成一个注册令牌。

原来 Elasticsearch 安全复杂配置的日子一去不复返了!

3.3 系统索引得到更好保护

l  Elasticsearch 8.0 中做了一些改变来保护系统索引不被直接访问。要访问系统索引的话,用户现在必须把 allow_restricted_indices 权限设置为 true

l  superuser 角色也不再给予系统索引的写入权限。因此,内置的 elastic superuser 默认不能改变系统索引。

l  此后,开发者应使用 Kibana 或相关的 Elasticsearch APIs 来管理某个功能的数据,而不是访问系统索引。如果你直接访问系统索引,Elasticsearch 将在 API 响应的 header 中和废弃日志中返回警告。

3.4 新的 kNN 搜索

kNN搜索是通过相似度判断来根据查询向量查找K个邻近的向量。

使用kNN的场景有:

l  基于自然语言处理NLP)算法的相关性排序。

l  产品推荐和推荐引擎。

l  图片或视频的相似搜索。

3.5 更新了倒排索引的内部数据结构,节省了磁盘存储空间。

这种变化将使 keyword 字段类型、 match_only_text 字段类型以及在较小程度上的 text字段类型受益。

该更新使得转化为 message 字段索引大小(映射为match_only_text)减少了 14.4%,磁盘占用空间总体减少了 3.5%

3.6 加快geo_point,geo_shape range 字段索引速度

新版本优化了多维点(multi-dimensional points)的索引速度,多维点是用于 geo_pointgeo_shape range 字段的内部数据结构。Lucene 级别的基准测试显示,这些字段类型的索引速度提高了 10-15%。主要由这些字段组成的 Elasticsearch 索引和数据流可能会在索引速度方面有显著的改进。

3.7  PyTorch 模型支持自然语言处理 (NLP)

可以上传在 Elasticsearch 之外训练的 PyTorch 模型,并在摄取时使用它们进行推理。

第三方模型支持为 Elastic Stack 带来了现代自然语言处理 (NLP)和搜索用例,例如:

l  填充蒙版 Fill-mask

l  命名实体识别 Named entity recognition (NER)

l  文本分类 Text classification

l  文本嵌入 Text embedding

l  零样本分类 Zero-shot classification

4Elastic 版本更迭历史图鉴

Elasticsearch

发布日期

版本号

时间间隔

2010-05-14

V0.7


2014-02-14

V1.0

1372

2015-10-28

V2.0

621

2016-10-26

V5.0

364

2017-11-14

V6.0

384

2019-04-10

V7.0

512

2022-02-11

V8.0

1038

咨询电话
400-068-1180