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();
    }
相关推荐
间彧9 分钟前
Spring Boot项目中如何实现Redis分布式锁
java
掘金安东尼9 分钟前
AI 应用落地谈起 ,免费试用 Amazon Bedrock 的最佳时机
java·架构
杨杨杨大侠27 分钟前
案例03-附件E-部署运维
java·docker·github
杨杨杨大侠33 分钟前
案例03-附件B-映射器实现
java·开源·github
杨杨杨大侠36 分钟前
案例03-附件A-订单实体设计
java·开源·github
杨杨杨大侠38 分钟前
案例03-附件C-性能优化
java·开源·github
杨杨杨大侠40 分钟前
案例03-附件D-监控系统
java·开源·github
华仔啊4 小时前
主线程存了用户信息,子线程居然拿不到?ThreadLocal 背锅
java·后端
间彧4 小时前
Spring Boot项目中,Redis 如何同时执行多条命令
java·redis
召摇5 小时前
如何避免写垃圾代码:Java篇
java·后端·代码规范