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();
    }
相关推荐
咖啡八杯3 小时前
GoF设计模式——策略模式
java·后端·spring·设计模式
Elasticsearch10 小时前
Kibana 中的 SNMP 拓扑数据:从采集到 Canvas
elasticsearch
用户1285261160211 小时前
我把祖传Java项目重构后,接口响应从3s砍到了200ms,只改了这几行代码
java
Linsk11 小时前
组件 = 模板 + 业务逻辑
java·前端·vue.js
星沉远浦12 小时前
用Gemini高效解决Java代码报错难以定位的问题
java
用户2986985301416 小时前
Word 文档字符级格式化:Java 实现方案详解
java·后端
笨鸟飞不快16 小时前
从单个服务到集群:一次完整的性能排查复盘
java·前端
荣码16 小时前
用Streamlit给AI应用套个界面,10行代码出Web页面
java·python
SamDeepThinking16 小时前
Java微服务练习方式
java·后端·微服务
朦胧之1 天前
AI 编程-老项目改造篇
java·前端·后端