2022 年 2 月 11 日,Elastic 8.0 正式发布。
Elastic 8.0 版通过改进 Elasticsearch 的矢量搜索功能、对现代自然语言处理模型的原生支持、不断简化的数据上线过程,以及精简的安全防护体验,在速度、扩展幅度、相关性和简便性方面,迎来了一个全新的时代。
这是距离 7.0 版本发布(2019年4月10日)超过 1038 天(近 3 年)后的第一个大版本;
这是 7.X 版本更新了 17 个版本(7.0——7.17)后的第一个大版本;
这是 Elastic 创始人 Shay Banon 从 CEO 回归 CTO 发布的第一个大版本;
这是基于 Lucene 9.0 的第一个版本;
.......
所以,Elastic 8.0 版本万众瞩目、非常期待!
可以简记为:
l 一个创新(NLP);
l 一个增强(向量检索);
l 两个简化(安全和 AWS 集成);
l 一个不变(为更大规模数据提供更快速度检索的初心不变)。
Elasticsearch 始终是执行 NLP 的理想之选,但过去它需要在 Elasticsearch 之外进行一些处理,或编写一些相当复杂的插件。在 8.0 版中,用户现在可以直接在 Elasticsearch 中执行命名实体识别、情感分析、文本分类等,而无需使用额外的组件或进行编码。在 Elasticsearch 中原生计算和创建矢量,不仅在水平可扩展性方面取得了“胜利”(通过在服务器集群中分布计算资源来实现),这一变化还为 Elasticsearch 用户显著节省了时间和精力。
如上两图红色、绿色对比,7.X 版本的 NLP 机器学习模型需要借助第三方组件,8.0 版本 Elastic 自己全搞定。
l 细分创新 1:无需额外组件或编码即可实现:“命名实体识别”、“情感分析”、“文本分类”等 NLP 操作。
l 细分创新 2:用户可以直接在 Elasticsearch 中使用 PyTorch 机器学习模型(例如 BERT),并使用这些模型(自定义模型或 Hugging Face 社区模型)进行推理。
l 带来了一整套原生矢量搜索功能。
l NLP 的引入使得向量搜索更加实用。
l ANN 的支持使得大规模数据下高速查询成为可能。
遵循 Elastic 的 slogan:“Simple things should be simple”简单的事情就该简单化。
l 默认启用安全性防护。
l 自动生成令牌和证书。
随着 Elastic 8.0 的发布,我们进一步扩大了云原生集成,有两个新的 AWS 集成:
l 集成了一个新的 AWS Lambda 应用程序。
l 集成了一个新的 Amazon Simple Storage Service (Amazon S3) Storage Lens。
为更大规模数据提供更快速度检索的初心不变。
8.0 为 Elasticsearch REST APIs 引入了一些重大的变化。Elasticsearch 已经在 REST API 中增加了对 7.x 兼容性 header 的支持。这些可选的 header 文件让你向 8.0 集群发出 7.x 兼容的请求,并收到 7.x 兼容的响应。
首次启动 Elasticsearch 时,会自动进行以下安全配置:
l 为传输层和 HTTP 层生成 TLS 证书和密钥。
l TLS 配置设置被写入elasticsearch.yml。
l 为 elastic 用户生成密码。
l 为 Kibana 生成一个注册令牌。
原来 Elasticsearch 安全复杂配置的日子一去不复返了!
l 在 Elasticsearch 8.0 中做了一些改变来保护系统索引不被直接访问。要访问系统索引的话,用户现在必须把 allow_restricted_indices 权限设置为 true。
l superuser 角色也不再给予系统索引的写入权限。因此,内置的 elastic superuser 默认不能改变系统索引。
l 此后,开发者应使用 Kibana 或相关的 Elasticsearch APIs 来管理某个功能的数据,而不是访问系统索引。如果你直接访问系统索引,Elasticsearch 将在 API 响应的 header 中和废弃日志中返回警告。
kNN搜索是通过相似度判断来根据查询向量查找K个邻近的向量。
使用kNN的场景有:
l 基于自然语言处理(NLP)算法的相关性排序。
l 产品推荐和推荐引擎。
l 图片或视频的相似搜索。
这种变化将使 keyword 字段类型、 match_only_text 字段类型以及在较小程度上的 text字段类型受益。
该更新使得转化为 message 字段索引大小(映射为match_only_text)减少了 14.4%,磁盘占用空间总体减少了 3.5%。
新版本优化了多维点(multi-dimensional points)的索引速度,多维点是用于 geo_point、geo_shape 和range 字段的内部数据结构。Lucene 级别的基准测试显示,这些字段类型的索引速度提高了 10-15%。主要由这些字段组成的 Elasticsearch 索引和数据流可能会在索引速度方面有显著的改进。
可以上传在 Elasticsearch 之外训练的 PyTorch 模型,并在摄取时使用它们进行推理。
第三方模型支持为 Elastic Stack 带来了现代自然语言处理 (NLP)和搜索用例,例如:
l 填充蒙版 Fill-mask
l 命名实体识别 Named entity recognition (NER)
l 文本分类 Text classification
l 文本嵌入 Text embedding
l 零样本分类 Zero-shot classification
发布日期 | 版本号 | 时间间隔 |
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 天 |