这里主要是和别名相关的操作
为一个已经创建好的索引增加别名
private static void addAlias(RestHighLevelClient client,String indexName,String aliasName){
IndicesAliasesRequest indicesAliasesRequest = new IndicesAliasesRequest();
IndicesAliasesRequest.AliasActions aliasActions = new IndicesAliasesRequest.AliasActions(IndicesAliasesRequest.AliasActions.Type.ADD);
aliasActions.index(indexName).alias(aliasName);
indicesAliasesRequest.addAliasAction(aliasActions);
try {
client.indices().updateAliases(indicesAliasesRequest,RequestOptions.DEFAULT);
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
//关闭 client
client.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
增加一个带过滤条件的别名
以后用这个别名查询时,会自动获取所有符合条件的文档
private static void addAlias2(RestHighLevelClient client,String indexName,String aliasName){
IndicesAliasesRequest indicesAliasesRequest = new IndicesAliasesRequest();
IndicesAliasesRequest.AliasActions aliasActions = new IndicesAliasesRequest.AliasActions(IndicesAliasesRequest.AliasActions.Type.ADD);
aliasActions.index(indexName).alias(aliasName).filter("{\"term\": {\"name\": \"java\"}}");
indicesAliasesRequest.addAliasAction(aliasActions);
try {
client.indices().updateAliases(indicesAliasesRequest,RequestOptions.DEFAULT);
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
//关闭 client
client.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
删除一个索引的别名
private static void deleteAlias(RestHighLevelClient client,String indexName,String aliasName){
IndicesAliasesRequest indicesAliasesRequest = new IndicesAliasesRequest();
IndicesAliasesRequest.AliasActions aliasActions = new IndicesAliasesRequest.AliasActions(
IndicesAliasesRequest.AliasActions.Type.REMOVE);
aliasActions.index(indexName).alias(aliasName);
indicesAliasesRequest.addAliasAction(aliasActions);
try {
client.indices().updateAliases(indicesAliasesRequest,RequestOptions.DEFAULT);
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
//关闭 client
client.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
删除一个索引的别名的第二种写法
private static void deleteAlias2(RestHighLevelClient client,String indexName,String aliasName){
DeleteAliasRequest deleteAliasRequest = new DeleteAliasRequest(indexName,aliasName);
try {
client.indices().deleteAlias(deleteAliasRequest,RequestOptions.DEFAULT);
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
//关闭 client
client.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
判断别名是否存在
private static void getAliasExist(RestHighLevelClient client,String indexName,String aliaName){
GetAliasesRequest getAliasesRequest = new GetAliasesRequest(aliaName);
// 指定查看某一个索引的别名 不指定,则会搜索所有的别名
getAliasesRequest.indices(indexName);
try {
boolean b = client.indices().existsAlias(getAliasesRequest, RequestOptions.DEFAULT);
System.out.println("exists: "+ b );
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
//关闭 client
client.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
获取别名
private static void getAlias(RestHighLevelClient client,String indexName,String aliaName){
GetAliasesRequest getAliasesRequest = new GetAliasesRequest(aliaName);
// 指定查看某一个索引的别名 不指定,则会搜索所有的别名
getAliasesRequest.indices(indexName);
try {
GetAliasesResponse response = client.indices().getAlias(getAliasesRequest,RequestOptions.DEFAULT);
Map<String, Set<AliasMetadata>> aliases = response.getAliases();
System.out.println("aliases: "+aliases);
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
//关闭 client
client.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}