java调用ES API

 

package org.hxl.es;

import org.apache.http.HttpEntity;
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.util.EntityUtils;
import org.elasticsearch.client.Request;
import org.elasticsearch.client.Response;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;

import java.nio.charset.StandardCharsets;

public class Test {
    public static void printIndexInfo() throws Exception {

        BasicCredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        credentialsProvider.setCredentials(
                AuthScope.ANY,
                new UsernamePasswordCredentials("elastic", "elastic"));

        // 1、创建ES客户端对象
        RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("192.168.1.134", 19200, "http"))
                .setHttpClientConfigCallback(httpClientBuilder ->
                        httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider)));
        // 2、发送请求到ES
        Response response = client.getLowLevelClient().performRequest(new Request("GET", "/_cat/indices"));

        // 3、数据处理
        HttpEntity entity = response.getEntity();
        String responseStr = EntityUtils.toString(entity, StandardCharsets.UTF_8);
        System.out.println(responseStr);

        // 4、数据分解
        String[] indexInfoArr = responseStr.split("\n");
        for (String indexInfo : indexInfoArr) {
            // 4.1、索引信息输出
            String[] infoArr = indexInfo.split("\\s+");
            String status = infoArr[0];
            String open = infoArr[1];
            String name = infoArr[2];
            String id = infoArr[3];
            String mainShardNum = infoArr[4];
            String viceShardNum = infoArr[5];
            String docNum = infoArr[6];
            String deletedDocNum = infoArr[7];
            String allShardSize = infoArr[8];
            String mainShardSize = infoArr[9];
            System.out.println("》》》》》》》》索引信息》》》》》》》》");
            System.out.println("名称:" + name);
            System.out.println("id:" + id);
            System.out.println("状态:" + status);
            System.out.println("是否开放:" + open);
            System.out.println("主分片数量:" + mainShardNum);
            System.out.println("副本分片数量:" + viceShardNum);
            System.out.println("Lucene文档数量:" + docNum);
            System.out.println("被删除文档数量:" + deletedDocNum);
            System.out.println("所有分片大小:" + allShardSize);
            System.out.println("主分片大小:" + mainShardSize);
        }
        // 6、关闭ES客户端对象
        client.close();
    }

    public static void main(String[] args) throws Exception {
        printIndexInfo();
    }
}

 

posted @ 2025-06-11 13:50  slnngk  阅读(15)  评论(0)    收藏  举报