操作Elasticsearch(新版本)

获取Elasticsearch客户端对象:


import co.elastic.clients.elasticsearch.ElasticsearchClient;
import co.elastic.clients.json.jackson.JacksonJsonpMapper;
import co.elastic.clients.transport.rest_client.RestClientTransport;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
import org.elasticsearch.client.RestClient;

import java.util.Arrays;
import java.util.function.Function;

public class ElasticUtil {

    public static ElasticsearchClient getESObj(){

        HttpHost[] ips = Arrays
                .stream(PropertiesUtil.getPro("ip").split(";"))
                .map(new Function<String, HttpHost>() {
            @Override
            public HttpHost apply(String s) {
                return new HttpHost(s, Integer.valueOf(PropertiesUtil.getPro("port")));
            }
        }).toArray(HttpHost[]::new);

        RestClient restClient = RestClient.builder(ips)
                .setHttpClientConfigCallback(httpClientBuilder -> {

                    BasicCredentialsProvider bcp = new BasicCredentialsProvider();
                    bcp.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(PropertiesUtil.getPro("esUser"), PropertiesUtil.getPro("esPass")));
                    HttpAsyncClientBuilder httpAsyncClientBuilder = httpClientBuilder.setDefaultCredentialsProvider(bcp);
                    return httpAsyncClientBuilder;
                }).build();

        RestClientTransport restClientTransport = new RestClientTransport(restClient, new JacksonJsonpMapper());
        ElasticsearchClient client = new ElasticsearchClient(restClientTransport);

        return client;
    }
}

依赖:

		<dependency>
            <groupId>co.elastic.clients</groupId>
            <artifactId>elasticsearch-java</artifactId>
            <version>7.17.0</version>
        </dependency>
        <!--        &lt;!&ndash; https://mvnrepository.com/artifact/org.elasticsearch.client/elasticsearch-rest-high-level-client &ndash;&gt;-->
<!--        <dependency>-->
<!--            <groupId>org.elasticsearch.client</groupId>-->
<!--            <artifactId>elasticsearch-rest-high-level-client</artifactId>-->
<!--            <version>7.17.0</version>-->
<!--        </dependency>-->

        <!-- https://mvnrepository.com/artifact/org.elasticsearch.client/elasticsearch-rest-client -->
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-client</artifactId>
            <version>7.17.0</version>
		</dependency>

从TransportClient对象追到RestHighLevelClient对象,发现都过期了,这个更迭有点快!

补充:新包Java删除数据操作
增改查操作EsSpark对象就可以直接完成,不赘述,没找到spark删除es数据的操作,这里是Java版本:


public void deleteData(String index,String id){

        ElasticsearchClient client = ElasticUtil.getEsObj();
        DeleteRequest deleteRequest = new DeleteRequest.Builder().index(index).id(id).build();
        try {
            client.delete(deleteRequest);
        } catch (IOException e) {
            e.printStackTrace();
        }
}

补充:deleteByQuery

public void delete(String index, String fieldName, String fieldValue){


        ElasticsearchClient client = ElasticUtils.getEsObj();

        Query query = new QueryStringQuery.Builder()
                .fields(fieldName)
                .query(fieldValue)
                .build()
                ._toQuery();

        try {
            client.deleteByQuery(new DeleteByQueryRequest.Builder().index(index).query(query).build());
        } catch (IOException e) {
            e.printStackTrace();
        }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值