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

总结一下:使用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;
	}
}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值