ES RestApi 操作索引别名

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

public List 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 map = JSON.parseObject(aliasString, Map.class);
    Set aliasSet = new HashSet();
    for (JSONObject jsonObject :map.values()) {
        aliasSet.addAll(jsonObject.getJSONObject("aliases").keySet());
    }
    List result = new ArrayList<>(aliasSet);
    Collections.sort(result);
    return result;
}

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

public List 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 map = JSON.parseObject(aliasString, Map.class);
    List 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);
}

你可能感兴趣的:(Elasticsearch,elasticsearch,java,索引,别名,api)