我尝试通过如下代码获取es群集中的所有别名:
public Set<String> getAllExitAlias(int timeOut) {
Set<String> result = new HashSet<>();
try {
GetAliasesResponse response = eagleTcpClient.getClient().admin().indices().getAliases(new GetAliasesRequest("_all")).get(timeOut, TimeUnit.SECONDS);
ImmutableOpenMap<String, List<AliasMetaData>> aliasesMap = response.getAliases();
... how can i build the result set of alias with aliasesMap as upon?
} catch (Exception exp) {
throw new RuntimeException("Error! A error occur when query exit alias!");
}
}
最佳答案
我有代码的解决方案:
public Set<String> getAllExistAlias(int timeOut) {
Set<String> result = new HashSet<>();
try {
GetAliasesResponse response = eagleTcpClient.getClient().admin().indices().getAliases(new GetAliasesRequest("_all")).get(timeOut, TimeUnit.SECONDS);
ImmutableOpenMap<String, List<AliasMetaData>> aliasesMap = response.getAliases();
for (ObjectCursor<List<AliasMetaData>> curAliases : aliasesMap.values()) {
for (AliasMetaData aliasMeta: curAliases.value) {
result.add(aliasMeta.alias());
}
}
return result;
} catch (Exception exp) {
throw new RuntimeException("Error! A error occur when query exist alias!");
}
}