Elasticsearch 是一个分布式的开源搜索和分析引擎,适用于所有类型的数据,包括文本、数字、地理空间、结构化和非结构化。Elasticsearch基于 Apache Lucene 构建,并于2010年由 Elasticsearch N.V.(现称为 Elastic)首次发布。
Elasticsearch 以其简单的 REST API,分布式性质,速度和易扩展性而闻名。
2022年2月,Elasticsearch 8.0 正式发布。从 Elasticsearch8.0开始,当第一次启动 Elasticsearch 时,安全功能被默认启用和配置,保护Elasticsearch 集群中的数据。和Elasticsearch 7.x 版本比较而言,这是其中一个显著的变化。
Elasticsearch 8.0 新特性概览
Elasticsearch Rest API相比较7.x而言做了比较大的改动(比如彻底删除_type),为了降低用户的升级成本,8.x会暂时的兼容7.x的请求。
默认开启安全配置(三层安全),并极大简化了开启安全需要的工作量,可以这么说:7.x开启安全需要10步复杂的步骤,比如CA、证书签发、yml添加多个配置等等,8.x 只需要一步即可。
存储空间优化:对倒排文件使用新的编码集,对于keyword、match_only_text、text类型字段有效,有3.5%的空间优化提升,对于新建索引和segment自动生效。
对Elasticsearch 内置索引的保护加强了:elastic用户默认只能读,如果需要写权限的时候,需有allow_restrict_access权限。
从 Spring Boot 应用中连接 Elasticsearch 8
提起 ElasticSearch Java Client,大部分开发人员的第一反应肯定是 Rest High Level Client。随着 Elasticsearch 8.x 新版本的到来,Type 的概念被废除,为了适应这种数据结构的改变,Elasticsearch 官方从 7.15 版本开始建议使用新的 Elasticsearch Java Client。
特性如下:
-
所有的请求和相应使用强类型,使用泛型增强
-
支持同步和异步请求
-
使用构建器模式(Builder Pattern),使复杂的请求变的流畅,良好的支持 lambda 表达式,简化代码,增强可读性
具体使用细节和实践,可以访问《Elasticsearch 8.0 快速入门》技术专栏。
专栏中首先快速体验Elasticsearch、Kibana、Metricbeat、Logstash 等组件功能;然后进行索引CRUD、DSL搜索查询和聚合查询、索引模板和组件模板、索引生命周期(ILM)策略、数据流(Data Stream)等操作实践;最后讲解 Spring Boot 和 Elasticsearch REST API 应用开发。帮助开发人员快速掌握 Elasticsearch 分布式的开源搜索和分析引擎、以及基于Elasticsearch REST API 的应用开发实践。