当前位置: 首页 > 面试题库 >

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

童琪
2023-03-14
问题内容

如何使用Java在ElasticSearch中查找给定索引的别名?

通过使用REST API,这非常容易

https://www.elastic.co/guide/zh-CN/elasticsearch/reference/1.x/indices-
aliases.html#alias-
retrieving

但是我无法找到有关如何通过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中指定的索引的别名

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



 类似资料:
  • 假设我有一个10x10单元格的板。每个单元格的索引从1到100(基于1的索引)。该板是一个单元格列表:。 任务。给定一个单元格的索引,找出覆盖它的所有单元格。 例如: 给定索引: 返回:,顺序不受关注。 我的解决方案是: 如果给定的单元格位于黑板中心的某个位置,我的方法似乎会返回正确的结果。但是如果给定的单元格在角或边,那就错了。例如,如果给定的单元格=5,那么该方法将包括索引为4的单元格,尽管它

  • 我有一个数据库是由某人为一项开发而创建的。在那个数据库中,我有一个这样的表。这是一个模式,如果parentID为0,则这些是超级类别。 1个 2. 3. 4个 5. 6. 当我浏览这个网站的时候,我可以得到一个- “AAA”的直接上级为“AA”,而“AA”的直接上级为“A”。因此,乍一看,“AAA”的超级类别是“a”。我想获得任何子类别的超级类别(父类别为“0”)。此子类别流可以是无限的。如果有人

  • 索引查找 索引查找的定义,来源百度百科 索引查找是在索引表和主表(即线性表的索引存储结构)上进行的查找。 索引查找的过程是: 首先根据给定的索引值K1,在索引表上查找出索引值等于K1的索引项,以确定K1对应的子表在主表中的开始位置和长度, 然后再根据给定的关键字K2,在对应的子表中查找出关键字等于K2的元素(结点)。 思路说明 对于一个list或者dictionary类型的数据,python有专门

  • 想改进这个问题吗?更新问题,让它只通过编辑这篇文章来关注一个问题。 给出了一个由N个整数组成的零索引数组A。此数组的平衡指数是任意整数P,因此0≤ P 例如,考虑以下由N = 8个元素组成的数组A: P = 1是这个数组的平衡指数,因为: P=3是该数组的平衡指数,因为: P = 7也是一个均衡指数,因为: 并且没有索引大于7的元素。 P = 8 不是均衡指数,因为它不满足条件 0 ≤ P 现在我

  • 本文向大家介绍在C ++程序中的给定数组中查找固定点(值等于索引),包括了在C ++程序中的给定数组中查找固定点(值等于索引)的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将解决以下问题。 给定一个数组,找到等于索引的数字。这是一个简单的问题。 遍历给定数组并返回等于数组元素的索引。 示例 让我们看一下代码。 输出结果 如果运行上面的代码,则将得到以下结果。 结论

  • 本文向大家介绍pytorch索引查找 index_select的例子,包括了pytorch索引查找 index_select的例子的使用技巧和注意事项,需要的朋友参考一下 index_select anchor_w = self.FloatTensor(self.scaled_anchors).index_select(1, self.LongTensor([0])) 参数说明:index_sel