Elasticsearch Java API使用(1):创建ElasticsearchClient

1、介绍

Elasticsearch是一个基于Lucene构建的开源搜索引擎,支持复杂的搜索功能。Java API SDK是Elasticsearch官方提供的一种方式,允许Java应用程序直接与Elasticsearch集群交互。8.x的版本和旧版本API差别比较大。本文没有使用Springboot data相关的功能,而是直接演示原生API的用法。

2、引入依赖

html 复制代码
<dependencies>
    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-java</artifactId>
        <version>8.7.1</version>
    </dependency>
</dependencies>

3、创建和关闭连接

java 复制代码
void testAnonymous() {
        // 匿名连接
        RestClient restClient = RestClient.builder(new HttpHost("192.168.0.10", 9200),
                new HttpHost("192.168.0.11", 9200),
                new HttpHost("192.168.0.12", 9200)).build();
        ObjectMapper objectMapper = new ObjectMapper();
        RestClientTransport transport = new RestClientTransport(restClient, new JacksonJsonpMapper(objectMapper));
        ElasticsearchClient client = new ElasticsearchClient(transport);
        client.shutdown();
    }


    void testBasicCredentials() {
        // 使用账号密码创建连接
        String username = "elastic";
        String password = "elastic";
        final BasicCredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password));

        RestClient restClient = RestClient.builder(new HttpHost("localhost", 9200))
                .setHttpClientConfigCallback(httpAsyncClientBuilder ->
                        httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider)).build();
        ElasticsearchTransport transport = new RestClientTransport(restClient, new JacksonJsonpMapper());
        ElasticsearchClient client = new ElasticsearchClient(transport);
        client.shutdown();
    }
相关推荐
悟空码字14 分钟前
别再System.out了!这份SpringBoot日志优雅指南,让你告别日志混乱
java·spring boot·后端
一 乐14 分钟前
工会管理|基于springboot + vue工会管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·工会管理系统
callJJ16 分钟前
Spring AI ETL 数据处理管道实战指南:从原始文档到向量索引
java·人工智能·spring·ai·etl·spring ai
暗暗别做白日梦17 分钟前
Maven 内部 Jar 包私服部署 + 多模块父工程核心配置
java·maven·jar
从零开始的-CodeNinja之路28 分钟前
【Redis】Redis 缓存应用、淘汰机制—(四)
java·redis·缓存
程序员张340 分钟前
自定义跨字段校验必填注解
java·后端
weixin_704266051 小时前
手机体检预约系统开发解析
java·开发语言
白露与泡影1 小时前
Java八股文大全(2026最新版)大厂面试题附答案详解
java·开发语言
那个失眠的夜1 小时前
Spring 的纯注解配置
xml·java·数据库·后端·spring·junit
ffqws_1 小时前
Spring Boot:用JWT令牌和拦截器实现登录认证(含测试过程和关键注解讲解)
java·spring boot·后端