栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

ElasticSeach JAVA API查找给定索引的别名

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ElasticSeach JAVA API查找给定索引的别名

在使用ElasticSearch时,我遇到一个问题,需要根据提供的索引获取别名列表。

获得别名列表非常简单:

 client.admin().cluster()    .prepareState().execute()    .actionGet().getState()    .getmetaData().aliases();

我努力寻找一种简单的方法来获得给定索引的别名,而不必首先遍历所有内容。

我的第一个实现看起来像这样:

    ImmutableOpenMap<String, ImmutableOpenMap<String, AliasmetaData>> aliases = client.admin().cluster()        .prepareState().execute()        .actionGet().getState()        .getmetaData().aliases();    for (ObjectCursor<String> key: aliases.keys()) {        ImmutableOpenMap<String, AliasmetaData> indexToAliasesMap = client.admin().cluster()          .state(Requests.clusterStateRequest())          .actionGet().getState()          .getmetaData().aliases().get(key.value);        if(indexToAliasesMap != null && !indexToAliasesMap.isEmpty()){ String index= indexToAliasesMap.keys().iterator().next().value; String alias = indexToAliasesMap.values().iterator().next().value.alias();        }    }

我不喜欢它…经过一番摸索,我能够通过查看RestGetIndicesAliasesAction(软件包org.elasticsearch.rest.action.admin.indices.alias.get)来更有效地做到这一点。

这就是我最终得到的结果:

    ClusterStateRequest clusterStateRequest = Requests.clusterStateRequest() .routingTable(false) .nodes(false) .indices("your_index_name_goes_here");    ObjectLookupContainer<String> setAliases= client .admin().cluster().state(clusterStateRequest) .actionGet().getState().getmetaData() .aliases().keys();

您将能够找到在setAliases中指定的索引的别名

希望它能对某人有所帮助!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/393283.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号