重建索引需要 30 秒,我不希望每次需要重建索引时我的搜索都离线 30 秒。我正在尝试这样做:
- 查找别名为 abc123 的旧索引
- 创建新索引并填充新数据
- 删除别名并删除旧索引
- 给新索引别名= 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/