public String[] getExistIndices(String [] indices){
List<String> existIndexList = new ArrayList<>();
for (String index: indices){
GetIndexRequest indexRequest = new GetIndexRequest().indices(index);
try {
RestHighLevelClient esClient = init();
boolean exists = esClient.indices().exists(indexRequest, RequestOptions.DEFAULT);
if (exists) {
existIndexList.add(index)
};
} catch (IOException e) {
e.printStackTrace();
}
}
return existIndexList.toArray(new String[0]);
}
//初始化highLevelClient
private RestHighLevelClient init(){
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials("elastic", "changeme"));
RestClientBuilder builder = RestClient.builder(buildHost(Arrays.asList("localhost:9200")))
.setHttpClientConfigCallback(httpAsyncClientBuilder ->
httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider));
return new RestHighLevelClient(builder);
}
// 构造主机地址数据 url为ip:port格式
private HttpHost[] buildHost(List<String> urls) {
HttpHost[] httpHosts = new HttpHost[urls.size()];
for (int i = 0; i < urls.size(); i++) {
String[] url = urls.split(":")
httpHosts[i] = new HttpHost(url[0], Integer.parseInt(url[1]));
}
return httpHosts;
}
Elasticsearch high-level-rest-client 判断索引是否存在
最新推荐文章于 2024-04-08 11:26:41 发布