java - 如何使用 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()
.
推荐阅读
- git - 长时间停顿后恢复功能开发
- mysql - 当第一个案例出现时,Sql 两个 multique 唯一忽略
- julia - 如何从文本中提取数据的特定部分(块)
- scalamock - 如何模拟一个接受参数并验证它的类?
- c# - 如何在shutdown()之后再次调用scheduler.Start()?(quartz.net 3.0.2 和 C#)
- iframe - 使用窗口或全局范围将 Redux 存储共享到多个 iframe
- windows - 命令在 cmd 中运行的时间限制
- python - 如何通过 CMD 使用用户输入向字典中添加新的详细信息
- sapui5 - 如何在 QUnit 测试的函数内设置控件的宽度?
- python - 遍历 DataFrame 分类列以创建子图