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();
}
}