当前位置:首页 > Java

java如何连接eshttps

2026-03-25 01:24:47Java

连接 Elasticsearch 的 Java 客户端

Java 可以通过官方提供的 RestHighLevelClient 或新的 Java API Client 连接 Elasticsearch。以下是两种方式的实现方法。

使用 RestHighLevelClient(传统方式)

添加 Maven 依赖:

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
    <version>7.17.0</version>
</dependency>

初始化客户端:

RestHighLevelClient client = new RestHighLevelClient(
    RestClient.builder(
        new HttpHost("localhost", 9200, "http")
    )
);

执行搜索请求示例:

SearchRequest searchRequest = new SearchRequest("index_name");
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(QueryBuilders.matchAllQuery());
searchRequest.source(sourceBuilder);
SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);

关闭客户端:

client.close();

使用新的 Java API Client(推荐)

添加 Maven 依赖:

<dependency>
    <groupId>co.elastic.clients</groupId>
    <artifactId>elasticsearch-java</artifactId>
    <version>8.12.2</version>
</dependency>

初始化客户端:

RestClient restClient = RestClient.builder(
    new HttpHost("localhost", 9200)
).build();

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

ElasticsearchClient client = new ElasticsearchClient(transport);

执行搜索请求示例:

SearchResponse<Object> response = client.search(s -> s
    .index("index_name")
    .query(q -> q
        .matchAll(m -> m)
    ),
    Object.class
);

关闭客户端:

restClient.close();

处理 SSL 和认证

如果需要连接 HTTPS 或添加认证:

CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(
    AuthScope.ANY,
    new UsernamePasswordCredentials("username", "password")
);

RestClient.builder(new HttpHost("hostname", 9200, "https"))
    .setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder
        .setSSLContext(sslContext)
        .setDefaultCredentialsProvider(credentialsProvider)
    );

连接池配置

优化客户端连接池:

RestClient.builder(new HttpHost("localhost", 9200))
    .setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder
        .setMaxConnTotal(100)
        .setMaxConnPerRoute(50)
    );

异常处理

捕获 Elasticsearch 异常:

java如何连接eshttps

try {
    // 执行ES操作
} catch (ElasticsearchException e) {
    // 处理ES特定异常
} catch (IOException e) {
    // 处理IO异常
}

以上方法涵盖了从基础连接到高级配置的 Java 连接 Elasticsearch 的实现方式。根据实际需求选择合适的客户端版本和配置参数。

标签: javaeshttps
分享给朋友:

相关文章

如何安装java

如何安装java

下载Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK下载页面,选择适合操作系统的版本(Windows、macOS或Linux)。推荐下载最新的长期支持(LTS)版本,如Java…

如何运行java程序

如何运行java程序

编写Java代码 创建一个以.java为扩展名的文件,例如HelloWorld.java。文件内容需包含一个类定义,类名必须与文件名一致。例如: public class HelloWorld {…

java如何react

java如何react

在Java中使用React 要在Java项目中集成React,通常需要将React前端与Java后端结合使用。以下是几种常见的方法: 使用Spring Boot作为后端 Spring Boot是一个…

如何配置java环境

如何配置java环境

下载JDK安装包 访问Oracle官网或OpenJDK官网,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。下载完成后,运行安装程序并按照提示完成安装。 设置环境变量 右键…

java如何输入数组

java如何输入数组

输入数组的方法 在Java中,可以通过多种方式输入数组,具体取决于输入源(如控制台、文件等)和数组类型(如基本类型或对象类型)。以下是几种常见的方法: 使用Scanner从控制台输入 对于基本数据类…

java如何创建数组

java如何创建数组

创建数组的基本方法 在Java中,数组是固定大小的同类型元素集合。创建数组需要声明数组类型并初始化。 声明数组 语法格式为 数据类型[] 数组名 或 数据类型 数组名[]: int[] arr1;…