Skip to content
章节导航

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

方案一:使用 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