如何使用RestHighLevelClient获取集群状态或索引元数据



我正在将应用程序从TransportClient迁移到RestHighLevelClient。现在我有以下方法来获取索引元数据:

public IndexMetaData getIndexMetaData(String indexAlias) {
ClusterState state = transportClient.admin().cluster().prepareState()
.setIndices(new String[]{indexAlias})
.execute()
.actionGet()
.getState();
Set<String> indices = getIndicesByAlias(indexAlias);
if (indices.size() > 0) {
return state.metaData().index(indices.iterator().next());
}
else {
return null;
}
}

基于https://github.com/elastic/elasticsearch/issues/27205,RestHighLevelClient不支持获取集群状态。

如何使用RestHighLevelClient替换上述方法?

如果我理解正确的话,你有一个别名,并且想得到它后面的所有索引?这对于GetAliasesRequest来说应该是可行的。

试试这样的东西:

GetAliasesResponse getAliasResponse =
client.indices().getAlias(new GetAliasesRequest("alias"),
RequestOptions.DEFAULT);
getAliasResponse.getAliases().keySet(); //key has the indices, value the aliases

PS:您可能需要添加existsAlias()的检查。

相关内容

  • 没有找到相关文章

最新更新