2014-10-08 52 views

回答

2

這就是我做到的。

// Get the map of [alias => [index => metadata, ...], ...] 
ImmutableOpenMap<String, ImmutableOpenMap<String, AliasMetaData>> aliasesAndIndices = 
     client.admin().cluster() 
     .prepareState().execute().actionGet().getState() 
     .getMetaData().getAliases(); 
Map<String, String> aliasForIndex = new HashMap<>(); 

// Convert it to a map of [index => alias, ...] 
for (String alias : aliasesAndIndices.keys().toArray(String.class)) { 
    ImmutableOpenMap<String, AliasMetaData> innerMap = aliasesAndIndices.get(alias); 
    for (String index : innerMap.keys().toArray(String.class)) { 
     aliasForIndex.put(index, alias); 
    } 
} 

然後我可以得到像這樣的索引的別名。

aliasForIndex.get(index) 
相關問題