欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > Elasticsearch简单集成java框架方式。

Elasticsearch简单集成java框架方式。

2025/5/25 23:11:25 来源:https://blog.csdn.net/weixin_45762066/article/details/148084787  浏览:    关键词: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(推荐方式)

// 添加 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 快速集成
# application.properties
spring.elasticsearch.uris=http://localhost:9200
spring.elasticsearch.connection-timeout=1s
spring.elasticsearch.socket-timeout=30s
@Configuration
public class ElasticsearchConfig {@Beanpublic ElasticsearchClient elasticsearchClient(RestClientBuilder restClientBuilder) {return new ElasticsearchClient(new RestClientTransport(restClientBuilder.build(), new JacksonJsonpMapper()));}
}
  1. 实体类映射示例
@Document(indexName = "products")
public class Product {@Idprivate String id;@Field(type = FieldType.Text, analyzer = "ik_max_word")private String name;@Field(type = FieldType.Double)private Double price;// getters/setters
}
  1. Repository 接口定义
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,旧项目迁移参考官方迁移指南

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词