elasticsearch8-学习3-springboot整合elasticsearch(8.2版本)

项目源码

https://gitee.com/smart_piggy/learn-spring-cloud/tree/master/piggy-test

引入依赖

<dependency>
    <groupId>co.elastic.clients</groupId>
    <artifactId>elasticsearch-java</artifactId>
    <version>8.2.3</version>
    <exclusions>
        <exclusion>
            <groupId>jakarta.json</groupId>
            <artifactId>jakarta.json-api</artifactId>
        </exclusion>
        <exclusion>
            <artifactId>elasticsearch-rest-client</artifactId>
            <groupId>org.elasticsearch.client</groupId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-client</artifactId>
    <version>8.2.3</version>
</dependency>
<dependency>
    <groupId>jakarta.json</groupId>
    <artifactId>jakarta.json-api</artifactId>
    <version>2.1.1</version>
</dependency>

配置类

	//异步
	@Bean
    public ElasticsearchAsyncClient elasticsearchClient01(){
        CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password));
        RestClientBuilder restClientBuilder = RestClient.builder(new HttpHost(ip, port, scheme))
                .setHttpClientConfigCallback(httpAsyncClientBuilder -> httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider));
        RestClient restClient = restClientBuilder.build();
        ElasticsearchTransport transport = new RestClientTransport(restClient, new JacksonJsonpMapper());
        return new ElasticsearchAsyncClient(transport);
    }

	//同步
    @Bean
    public ElasticsearchClient elasticsearchClient02(){
        CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password));
        RestClientBuilder restClientBuilder = RestClient.builder(new HttpHost(ip, port, scheme))
                .setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
                    @Override
                    public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpAsyncClientBuilder) {
                        return httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
                    }
                });
        RestClient restClient = restClientBuilder.build();
        ElasticsearchTransport transport = new RestClientTransport(restClient, new JacksonJsonpMapper());
        return new ElasticsearchClient(transport);
    }

注入

		@Resource
    	private ElasticsearchClient elasticsearchClient;

添加索引

	    CreateIndexResponse createIndexResponse = elasticsearchClient.indices().create(
                c -> c.index("my-index-000008"));

索引是否存在

	    elasticsearchClient.exists(
                b -> b.index("my-index-000001").id("bTWPj4wBeGohIJG6mGgV")).value()

索引添加别名

		AddAction addAction = new AddAction.Builder().index("my-index-000007")
                .alias("piggy-index").build();
        UpdateAliasesRequest build = new UpdateAliasesRequest.Builder()
                .actions(a -> a.add(addAction)).build();
        boolean acknowledged = elasticsearchClient.indices()
                .updateAliases(build).acknowledged();

插入

		TestPO testPO = new TestPO();
        testPO.setAge(20);
        testPO.setName("admin");
        // 1 添加
        IndexRequest.Builder<Object> document = new IndexRequest.Builder<>()
                .index("my-index-000001")
                .document(testPO);

        IndexRequest<Object> build = document.build();
        IndexResponse index = elasticsearchClient.index(build);

        // 2 id不存在添加 id存在全量修改
        IndexResponse indexResponse = elasticsearchClient.index(b -> b
                .index("my-index-000001").id("oe2flIwBTh5XsTOYghak")
                .document(testPO));

修改

		TestPO testPO = new TestPO();
        testPO.setEmail("piggy@126.com");
        UpdateResponse<TestPO> update = elasticsearchClient.update(
                param -> param.index("my-index-000001").id("7").doc(testPO), TestPO.class);

删除

		DeleteResponse delete = elasticsearchClient.delete(
                a -> a.index("my-index-000001").id("oe2flIwBTh5XsTOYghak"));
  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值