如何使用java中的resthighlevelclient连接elasticsearch?1.添加maven依赖,引入elasticsearch-rest-high-level和elasticsearch对应版本;2.创建客户端实例,指定es地址或集群节点,并建议单例使用;3.执行插入数据、查询数据、搜索数据等操作;4.注意版本匹配、资源关闭、异常处理及安全认证配置。

连接Elasticsearch(ES)是Java应用中常见的需求,特别是在做搜索、日志分析等场景。如果你用的是较老版本的ES(比如6.x或7.x),可能还会接触到一个叫 RestHighLevelClient 的客户端。

虽然现在官方已经不推荐使用这个客户端了(建议用新的 Java API Client),但很多老项目还在用它,所以还是有必要了解怎么用。
下面简单说说怎么在Java里用 RestHighLevelClient 连接ES。
立即学习“Java免费学习笔记(深入)”;

要使用这个客户端,首先得引入对应的依赖。一般项目都是用 Maven 或 Gradle 管理依赖,这里以 Maven 为例:
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level</artifactId>
<version>7.17.0</version> <!-- 版本号要和你的ES版本匹配 -->
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.17.0</version>
</dependency>注意:版本号一定要跟你用的 ES 版本一致,不然容易出兼容性问题。

创建 RestHighLevelClient 实例时,需要指定 ES 的地址,通常是通过 HTTP 方式连接。
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(
new HttpHost("localhost", 9200, "http")
)
);如果是集群部署,可以加多个节点:
RestClient.builder(
new HttpHost("host1", 9200, "http"),
new HttpHost("host2", 9200, "http")
)可以用 IndexRequest 来插入一条记录:
IndexRequest request = new IndexRequest("my_index");
request.id("1"); // 可选,如果不指定会自动生成
request.source(Map.of("name", "张三", "age", 25), XContentType.JSON);
client.index(request, RequestOptions.DEFAULT);使用 GetRequest 获取某条记录:
GetRequest getRequest = new GetRequest("my_index", "1");
GetResponse response = client.get(getRequest, RequestOptions.DEFAULT);
if (response.isExists()) {
Map<String, Object> source = response.getSource();
System.out.println(source); // 输出:{name=张三, age=25}
}可以用 SearchRequest 加上 SearchSourceBuilder 构建查询条件,比如按字段匹配:
SearchRequest searchRequest = new SearchRequest("my_index");
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
MatchQueryBuilder matchQuery = QueryBuilders.matchQuery("name", "张三");
sourceBuilder.query(matchQuery);
searchRequest.source(sourceBuilder);
SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);这些只是基本操作,实际开发中还要处理异常、分页、聚合等等。
RestHighLevelClient 已被标记为过时,在新项目中建议考虑使用 Elasticsearch Java API Client。RestClient。基本上就这些。用起来不算太复杂,但有些细节容易忽略,比如版本匹配、连接池设置、异常处理等。写代码的时候多留意这些问题,能少踩不少坑。
以上就是如何使用Java连接ES?RestHighLevelClient的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号