Elasticsearch简单集成java框架方式。

Elasticsearch 在 Java 中最常用的客户端是什么?如何初始化一个 RestHighLevelClient?如何用 Spring Boot 快速集成 Elasticsearch?Spring Data Elasticsearch 如何定义实体类与索引的映射?

  1. 最常用的 Java 客户端

    目前官方推荐使用新的 Java API Client (替代旧的 RestHighLevelClient),这是 Elasticsearch 官方维护的最新客户端,支持 7.17+ 版本。旧项目可能仍在使用已被废弃的 High Level REST Client。

    但是国内相对而言,RestHighLevelClient还是使用比较多的,就跟jdk8一个道理。

  2. 初始化 Java API Client(推荐方式)

java 复制代码
// 添加 Maven 依赖
<dependency>
    <groupId>co.elastic.clients</groupId>
    <artifactId>elasticsearch-java</artifactId>
    <version>8.13.4</version>
</dependency>

// 初始化客户端
RestClient restClient = RestClient.builder(
    new HttpHost("localhost", 9200)).build();

ElasticsearchTransport transport = new RestClientTransport(
    restClient, new JacksonJsonpMapper());

ElasticsearchClient client = new ElasticsearchClient(transport);
  1. Spring Boot 快速集成
properties 复制代码
# application.properties
spring.elasticsearch.uris=http://localhost:9200
spring.elasticsearch.connection-timeout=1s
spring.elasticsearch.socket-timeout=30s
java 复制代码
@Configuration
public class ElasticsearchConfig {
    @Bean
    public ElasticsearchClient elasticsearchClient(RestClientBuilder restClientBuilder) {
        return new ElasticsearchClient(
            new RestClientTransport(restClientBuilder.build(), new JacksonJsonpMapper())
        );
    }
}
  1. 实体类映射示例
java 复制代码
@Document(indexName = "products")
public class Product {
    @Id
    private String id;
    
    @Field(type = FieldType.Text, analyzer = "ik_max_word")
    private String name;
    
    @Field(type = FieldType.Double)
    private Double price;
    
    // getters/setters
}
  1. Repository 接口定义
java 复制代码
public interface ProductRepository extends ElasticsearchRepository<Product, String> {
    List<Product> findByName(String name);
    
    @Query("{\"match\": {\"name\": \"?0\"}}")
    Page<Product> searchByName(String name, Pageable pageable);
}

版本注意事项

  • Spring Boot 3.x 对应 Spring Data Elasticsearch 5.x
  • 需要保持 Elasticsearch 服务端版本与客户端版本一致
  • 新项目建议使用新的 Java API Client,旧项目迁移参考官方迁移指南
相关推荐
艾莉丝努力练剑1 小时前
【Python基础:语法第一课】Python 基础语法详解:变量、类型、动态特性与运算符实战,构建完整的编程基础认知体系
大数据·人工智能·爬虫·python·pycharm·编辑器
智能相对论1 小时前
10万人共同选择的背后,Rokid乐奇有自己的“破圈秘籍”
大数据·智能眼镜
人大博士的交易之路1 小时前
龙虎榜——20251128
大数据·数学建模·数据挖掘·数据分析·缠论·龙虎榜·道琼斯结构
wasp5201 小时前
做了技术管理后,我发现技术和管理其实可以兼得
java·运维·网络
MarkHD1 小时前
车辆TBOX科普 第45次
java·开发语言
okseekw1 小时前
字面量的初步认识
java
YJlio2 小时前
ShareEnum 学习笔记(9.5):内网共享体检——开放共享、匿名访问与权限风险
大数据·笔记·学习
wang_yb2 小时前
告别盲人摸象,数据分析的抽样方法总结
大数据·databook
倚肆2 小时前
Spring Boot CORS 配置详解:CorsConfigurationSource 全面指南
java·spring boot·后端
v***44672 小时前
springboot之集成Elasticsearch
spring boot·后端·elasticsearch