您的位置:首页 > 编程语言 > Java开发

java 获取elasticsearch Client以及 判断是否存在此索引

2017-05-15 16:33 405 查看
总结一下:使用java客户端 连接 ES,获取client

package com.testt.util;

import java.util.ArrayList;
import java.util.List;

import org.elasticsearch.ElasticsearchException;
import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsRequest;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.ImmutableSettings;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;

/**
* ES 测试工具类
* @author zhangqingzhou
*
*/
public abstract class EsClientUtil{
/**
* 是否为调试
*/
private static boolean Debug = false;

public Object execute(Object ... obj){
@SuppressWarnings("rawtypes")
List rsList = new ArrayList<>();
ESClient esclient = null;
try {
esclient = (!Debug)?getDefaultDelegateClient():buildClient();
if(null == esclient)
return rsList;
return executeIt(esclient, obj);
} catch (Exception e) {
}finally{
ESClientFactory.me().closeClient(esclient);
}
return rsList;
}
/**
* 接口 的 执行方法,需要重写
* @param esclient
* @param obj
* @return
*/
protected abstract Object executeIt(ESClient esclient,Object ... obj);

public static ESClient buildClient(){
Settings settings = ImmutableSettings.settingsBuilder()
.put("client.transport.sniff", true).put("cluster.name", "集群名称").build();
@SuppressWarnings("resource")
TransportClient client = new TransportClient(settings)
.addTransportAddress(new InetSocketTransportAddress("127.0.0.1", 9300));
ESClient delegateClient = new ESClient(client, Type.local);
return delegateClient;
}

public static ESClient getDefaultDelegateClient(){
ESClient cupidClient = null;
try {
// 获取系统 ES集群client  已经封装好的
cupidClient = ESClientFactory.me().getDefaultDelegateClient();
} catch (Exception e) {
}
return (!Debug)?cupidClient
:buildClient();
}

/**
* 判断 ES集群中 是否含有 此索引名的索引
* @param indexName
* @return
*/
public static boolean isExistIndex(String indexName){
boolean flag = false;

ESClient client =getDefaultDelegateClient();
try {
if(client != null){
flag =client.admin().indices().exists(
new IndicesExistsRequest()
.indices(new String[]{indexName}))
.actionGet().isExists();

}
} catch (ElasticsearchException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return flag;
}
}






                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  elasticsearch
相关文章推荐