ElasticSearch 8.x 客户端介绍
- 更旧版的ES会用TransportClient(7.0版本标记过期)
- Java Low Level REST Client(有继续迭代维护)
- 基于低级别的 REST 客户端,通过发送原始 HTTP 请求与 Elasticsearch 进行通信。
- 自己拼接好的字符串,并且自己解析返回的结果;兼容所有的Elasticsearch版本
- Java High Level REST Client(7.1版本标记过期)
- 基于低级别 REST 客户端,提供了更高级别的抽象,简化了与 Elasticsearch 的交互。
- 提供了更易用的 API,封装了底层的请求和响应处理逻辑,提供了更友好和可读性更高的代码。
- 自动处理序列化和反序列化 JSON 数据,适用于大多数常见的操作,如索引、搜索、聚合等。
- 对于较复杂的高级功能和自定义操作,可能需要使用低级别 REST 客户端或原生的 Elasticsearch REST API
- Java API Client(8.X版本开始推荐使用)
- Elasticsearch在7.1版本之前使用的Java客户端是Java REST Client
- 从7.1版本开始Elastic官方将Java REST Client标记为弃用(deprecated),推荐使用新版Java客户端Java API Client
- 新版的java API Client是一个用于与Elasticsearch服务器进行通信的Java客户端库
- 封装了底层的Transport通信,并提供了同步和异步调用、流式和函数式调用等方法
- 官网文档地址: https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/8.5/introduction.html
SpringBoot 如何整合 Elastic Search
方案一:使用 Elasticsearch 官方提供的高级客户端库 - Elasticsearch Api Client
shell
<dependency>
<groupId>co.elastic.clients</groupId>
<artifactId>elasticsearch-java</artifactId>
<version>8.5.3</version>
</dependency>方案二:使用 Spring Data Elasticsearch
- 基于 Spring Data 的标准化数据访问技术,简化了与 Elasticsearch 的集成。
- 提供了丰富的 CRUD 操作和查询方法,简化了数据访问,包括自动化的索引管理和映射
- Spring Data Elasticsearch 对于一些高级功能和复杂查询可能不够灵活,需要额外定制处理
什么是Spring Data框架
- 是一个用于简化数据访问和持久化的开发框架,提供了一组统一的 API 和抽象
- 与各种数据存储技术(如关系型数据库、NoSQL 数据库、Elasticsearch 等)进行交互变得更加容易
- 官网:https://spring.io/projects/spring-data
几个核心模块:
Spring Data JPA
- 用于与关系型数据库进行交互,基于 JPA(Java Persistence API)标准
- 提类似于 Repository 的接口,通过继承这些接口并声明方法,自动生成常见的数据CRUD
Spring Data MongoDB
- 用于与 MongoDB NoSQL 数据库进行交互,提供一种类似于 Repository 的接口
- 通过继承这些接口并声明方法,自动生成常见的数据CRUD
Spring Data Redis
- 用于与 Redis 键值存储数据库进行交互,提供 Repository 的接口
- 通过继承这些接口并声明方法,自动生成常见的数据CRUD
Spring Data Elasticsearch
- 用于与 Elasticsearch 搜索引擎进行交互,提供 Repository 的接口
- 通过继承这些接口并声明方法,自动生成常见的数据CRUD
朔风