如何在Elasticsearch java api中找到Alias索引?

 安静的美男只 发布于 2022-12-27 14:43

重新索引需要30秒,每次我需要重新索引时,我不希望我的搜索离线30秒.我正在尝试这样做:

    查找alias = abc123的旧索引

    创建新索引并填充新数据

    删除别名并删除旧索引

    给新索引别名= abc123

我似乎无法找到任何1代码的java代码.其他一切都很好.任何人?还是有另一种方式更好?

使用Elasticsearch 0.90.9.

2 个回答
  • 您可以使用它来获取所有别名:

     client.admin().cluster()
        .prepareState().execute()
        .actionGet().getState()
        .getMetaData().getAliases();
    

    这将返回一个映射,其索引名称为keyaliases值.因此,您可以迭代地图以获取索引名称.

    2022-12-27 14:46 回答
  • 以下是查找给定aliasName中所有索引的参考方法:

    public Set<String> getIndicesFromAliasName(String aliasName) {
    
        IndicesAdminClient iac = client.admin().indices();
        ImmutableOpenMap<String, List<AliasMetaData>> map = iac.getAliases(new GetAliasesRequest(aliasName))
                .actionGet().getAliases();
    
        final Set<String> allIndices = new HashSet<>();
        map.keysIt().forEachRemaining(allIndices::add);
        return allIndices;
    }
    

    2022-12-27 14:46 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有