当前位置:首页 > 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文件

安装JDK 确保系统已安装Java Development Kit(JDK)。可通过命令行输入 javac -version 和 java -version 验证。若未安装,需从Oracle或Open…

java如何避免死锁

java如何避免死锁

避免死锁的方法 固定顺序获取锁 确保所有线程按照相同的顺序获取多个锁。例如,若需要获取锁A和锁B,所有线程必须先获取A再获取B,避免交叉依赖导致的死锁。这种方式破坏了“循环等待”条件。 使用锁超时机…

如何选择java培训

如何选择java培训

评估培训机构资质 选择有正规资质的机构,查看其营业执照、办学许可证等。优先考虑具备人力资源和社会保障部或教育部认证的机构,这类机构的教学质量和课程设置通常更规范。 考察课程内容与行业需求匹配度…

如何系统的学习java

如何系统的学习java

学习Java的基础知识 Java的基础知识包括语法、数据类型、变量、运算符、控制流语句等。可以通过官方文档或入门书籍如《Java核心技术》来掌握这些内容。编写简单的程序练习基础语法,例如打印“Hell…

react如何与java配合

react如何与java配合

React 与 Java 配合的常见方式 React 作为前端框架,通常与 Java 后端通过 RESTful API 或 GraphQL 进行交互。以下是几种常见的配合方式: RESTful AP…

php 实现java md5加密

php 实现java md5加密

PHP 实现 Java MD5 加密的兼容方法 Java 和 PHP 的 MD5 加密结果可能存在差异,主要因字符编码或输出格式不同。以下是确保两者结果一致的方法: 使用 hash 函数并处理编码…