绊脚石乃是进身之阶。

获取单个索引大小

Elasticsearch | 作者 jianjianhe | 发布于2017年12月05日 | 阅读数:3122

ES应该也有像Hbase或者关系型数据库一样,能够通过相应的java api获取单个index的大小吧?
已邀请:

jianjianhe

赞同来自: luohuanfeng

这里自己已经实现了,在这里记录下吗,顺便可以帮助需要的人:
    //获取单个索引总容量
public String getTotalDisk(String index){

IndicesStatsResponse response = ESUtils .ES_UTILS.getClient().admin().indices().prepareStats(index).execute().actionGet();

CommonStats stats = response.getTotal();

return stats.getStore().getSize().toString();

}

//获取主分片总容量
public String getPrimariesDisk(String index){

IndicesStatsResponse response = ESUtils .ES_UTILS.getClient().admin().indices().prepareStats(index).execute().actionGet();

CommonStats commonStats = response.getPrimaries();

return commonStats.getStore().getSize().toString();

}

jianjianhe

赞同来自: luohuanfeng

    //获取主/副本分片个数
public Map<String, String> getShardsNum(String index){

Map<String, String> shardsNum = new HashMap<>();

GetSettingsResponse response = ESUtils.ES_UTILS.getClient().admin().indices().prepareGetSettings(index).get();

ImmutableOpenMap<String, Settings> map = response.getIndexToSettings();

for (ObjectObjectCursor<String, Settings> cursor : map) {

shardsNum.put("number_of_shards",cursor.value.get("index.number_of_shards"));

shardsNum.put("number_of_replicas",cursor.value.get("index.number_of_replicas"));

}

return shardsNum;
}

luohuanfeng

赞同来自:

GET /_cat/indices?v
这个吗

要回复问题请先登录注册