我有一些名称为test-1-in,test-2-in,test-3-in的索引。我想从JAVA API做_cat / indices / test - * - in。这该怎么做? 我尝试使用IndexAdminClient但没有运气。
答案 0 :(得分:1)
给定ElasticSearch Client
对象:
client.admin().indices()
.getIndex(new GetIndexRequest().indices("regex-*"))
.actionGet().getIndices();
答案 1 :(得分:0)
我有一个解决方案:
final ClusterStateRequest clusterStateRequest = new ClusterStateRequest();
clusterStateRequest.clear().metaData(true);
final IndicesOptions strictExpandIndicesOptions = IndicesOptions.strictExpand();
clusterStateRequest.indicesOptions(strictExpandIndicesOptions);
ClusterStateResponse clusterStateResponse = client.admin().cluster().state(clusterStateRequest).get();
clusterStateResponse.getState().getMetadata().getIndices()
这将给出所有索引。之后,必须手动完成注册匹配。这是在elasticsearch源代码中为_cat实现所做的。
答案 2 :(得分:0)
如果要使用?v选项设置索引:
IndicesStatsRequestBuilder indicesStatsRequestBuilder = new
IndicesStatsRequestBuilder(client, IndicesStatsAction.INSTANCE);
IndicesStatsResponse response = indicesStatsRequestBuilder.execute().actionGet();
for (Map.Entry<String, IndexStats> m : response.getIndices().entrySet()) {
System.out.println(m);
}
每个条目都包含文档计数,存储空间使用情况等。您可以全部运行此文件或过滤某些索引。
PD:已通过5.6.0版本进行测试