最近有个需求是查询es集群下所有的索引信息,根据索引再查询索引的属性信息;不巧的是我用的es 6.1.3版本,采用的es最新推荐的RestHighLevelClient方式进行操作,由于这个方式应该是刚从6版本诞生,正好缺少查询索引的函数,仅有删除索引的方法,
如图
也确定了是6.4版本后才支持检索所有索引的api,没的办法,es版本是不能轻易换的,只能继续探索。。。
翻阅了众多博客文档,皆无办法,直到后来在Elastic HD发现了有获取所有索引的地方,仔细一看还真是有提供的http api;
所以也就有了这方面解决办法的入口,简单整理一下后就记录一下
1.获取所有es的索引信息
http://host:9200/_cat/indices?v
终于算是拿到了所有的索引,如果只是看的话完全没问题,但是想拿到所有的索引名,返回的数据又是这么个,java尝试各种解析都不得行,百度了半天也没找到好的办法。后来又是想到了ElasticHD,看看他是怎么实现的,下载了ElasticHD的源码,终于找到。。。
后面加个参数即可
http://host:9200/_cat/indices?format=json
最终返回的结果 ,json格式,再说不会解析就过分了哈!
2.根据索引名称获取索引的属性信息.
http://host:9200/索引名?pretty=true
?pretty=true 意思是 是否美化格式 ,不加也可。。。
重点就介绍这两个,其他的还有不少,大家可自行去网上查阅 。如有问题可以留言讨论!