ES RestApi 操作索引别名

1、查询系统中所有的索引别名

public List<String> queryAllAlias() {
    RestClient lowLevelClient = RestHighLevelClientHolder.get().getLowLevelClient();
    Request request = new Request(HttpGet.METHOD_NAME, "_aliases");
    Response response = lowLevelClient.performRequest(request);
    String aliasString = EntityUtils.toString(response.getEntity());
    Map<String, JSONObject> map = JSON.parseObject(aliasString, Map.class);
    Set aliasSet = new HashSet();
    for (JSONObject jsonObject :map.values()) {
        aliasSet.addAll(jsonObject.getJSONObject("aliases").keySet());
    }
    List<String> result = new ArrayList<>(aliasSet);
    Collections.sort(result);
    return result;
}

2、根据索引别名查询关联的所有索引

public List<String> aliasIndex(Integer projectId, String aliasName) {
    RestClient lowLevelClient = RestHighLevelClientHolder.get().getLowLevelClient();
    Request request = new Request(HttpGet.METHOD_NAME, "_alias/" + aliasName);
    Response response = lowLevelClient.performRequest(request);
    String aliasString = EntityUtils.toString(response.getEntity());
    Map<String, JSONObject> map = JSON.parseObject(aliasString, Map.class);
    List<String> result = new ArrayList<>(map.keySet());
    Collections.sort(result);
    return result;
}

3、新增索引的索引别名

public void addAlias(String indexName, String aliasName) throws IOException {
    IndicesClient indicesClient = RestHighLevelClientHolder.get().indices();
    IndicesAliasesRequest.AliasActions aliasActions = IndicesAliasesRequest.AliasActions.add();
    aliasActions.alias(aliasName);
    aliasActions.index(indexName);
    IndicesAliasesRequest indicesAliasesRequest = new IndicesAliasesRequest();
    indicesAliasesRequest.addAliasAction(aliasActions);
    indicesClient.updateAliases(indicesAliasesRequest, RequestOptions.DEFAULT);
}

4、删除索引的索引别名

public void deleteAlias(String indexName, String aliasName) throws IOException {
    IndicesClient indicesClient = RestHighLevelClientHolder.get().indices();
    IndicesAliasesRequest.AliasActions aliasActions = IndicesAliasesRequest.AliasActions.remove();
    aliasActions.alias(aliasName);
    aliasActions.index(indexName);
    IndicesAliasesRequest indicesAliasesRequest = new IndicesAliasesRequest();
    indicesAliasesRequest.addAliasAction(aliasActions);
    indicesClient.updateAliases(indicesAliasesRequest, RequestOptions.DEFAULT);
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值