1、查询系统中所有的索引别名
public List<String> queryAllAlias() {
RestClient lowLevelClient = RestHighLevelClientHolder.get().getLowLevelClient();
Request request = new Request(HttpGet.METHOD_NAME, "_aliases");
Response response = lowLevelClient.performRequest(request);
String aliasString = EntityUtils.toString(response.getEntity());
Map<String, JSONObject> map = JSON.parseObject(aliasString, Map.class);
Set aliasSet = new HashSet();
for (JSONObject jsonObject :map.values()) {
aliasSet.addAll(jsonObject.getJSONObject("aliases").keySet());
}
List<String> result = new ArrayList<>(aliasSet);
Collections.sort(result);
return result;
}
2、根据索引别名查询关联的所有索引
public List<String> aliasIndex(Integer projectId, String aliasName) {
RestClient lowLevelClient = RestHighLevelClientHolder.get().getLowLevelClient();
Request request = new Request(HttpGet.METHOD_NAME, "_alias/" + aliasName);
Response response = lowLevelClient.performRequest(request);
String aliasString = EntityUtils.toString(response.getEntity());
Map<String, JSONObject> map = JSON.parseObject(aliasString, Map.class);
List<String> result = new ArrayList<>(map.keySet());
Collections.sort(result);
return result;
}
3、新增索引的索引别名
public void addAlias(String indexName, String aliasName) throws IOException {
IndicesClient indicesClient = RestHighLevelClientHolder.get().indices();
IndicesAliasesRequest.AliasActions aliasActions = IndicesAliasesRequest.AliasActions.add();
aliasActions.alias(aliasName);
aliasActions.index(indexName);
IndicesAliasesRequest indicesAliasesRequest = new IndicesAliasesRequest();
indicesAliasesRequest.addAliasAction(aliasActions);
indicesClient.updateAliases(indicesAliasesRequest, RequestOptions.DEFAULT);
}
4、删除索引的索引别名
public void deleteAlias(String indexName, String aliasName) throws IOException {
IndicesClient indicesClient = RestHighLevelClientHolder.get().indices();
IndicesAliasesRequest.AliasActions aliasActions = IndicesAliasesRequest.AliasActions.remove();
aliasActions.alias(aliasName);
aliasActions.index(indexName);
IndicesAliasesRequest indicesAliasesRequest = new IndicesAliasesRequest();
indicesAliasesRequest.addAliasAction(aliasActions);
indicesClient.updateAliases(indicesAliasesRequest, RequestOptions.DEFAULT);
}