java - 如何在 Elasticsearch java api 中按别名查找索引?

标签 java elasticsearch

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

  1. 查找别名为 abc123 的旧索引
  2. 创建新索引并填充新数据
  3. 删除别名并删除旧索引
  4. 给新索引别名= abc123

我似乎找不到执行 1) 的任何 Java 代码。其他一切都很好。任何人?还是有其他更好的方法?

使用 Elasticsearch 0.90.9。

最佳答案

以下是查找给定别名中所有索引的方法供您引用:

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;
}

关于java - 如何在 Elasticsearch java api 中按别名查找索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25349947/

相关文章:

java - JSON 支持依赖项不起作用

java - 在Java并发教程的fork/join部分中, "computeDirectly"函数是如何通过 "invokeAll"执行的?

java - MongoDB 中的 BasicDBObject 拒绝接受整数值

elasticsearch - 是否可以使用 X-Pack 来限制 Kibana 登录尝试?

elasticsearch - 如何匹配多个单词?

elasticsearch - 如何确保所有文件在ElasticSearch中建立索引

elasticsearch - 在 Amazon EC2 上运行的 Elasticsearch 集群是否需要使用负载均衡器?

java - Android 中无标签字符串的 JSON 解析

java - 在 Java 中解析 JSON 对象

performance - 如何在Elasticsearch和Python中初始化标签数组列表