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

问题描述

我正在将应用程序从<ul id="result"></ul>迁移到TransportClient。现在,我有以下方法获取索引元数据:

RestHighLevelClient

基于https://github.com/elastic/elasticsearch/issues/27205public 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; } } 不支持获取群集状态。

如何使用RestHighLevelClient替换上述方法

解决方法

如果我理解正确,那么您有一个别名并想获取其后的所有索引吗? GetAliasesRequest应该可以做到这一点。

尝试这样的事情:

C

PS:您可能要为match添加支票。