部门调整以后进入新部门,新部门用的elasticsearch 1.8.X,很老的版本了,由于里面各种各样的插件,非常多,导致升级版本基本没有希望了,所以代码没有参考价值了,最近打算自己封装一套rest接口的查询API,首先去网上各种搜索各种github,大部分教程好像都是重复的,
好了开始:
单例类
import java.net.InetAddress; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.TransportAddress; import org.elasticsearch.transport.client.PreBuiltTransportClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class ESClientService { private static final Logger logger = LoggerFactory.getLogger(ESClientService.class); private TransportClient client; private final static ESClientService INSTANCE = new ESClientService(); private ESClientService() { init(); } public void init() { try { String clusterName = System.getProperties().getProperty("es.cluster.name");//集群名称 social String address = System.getProperties().getProperty("es.cluster.address");//集群地址根据自己的配置修改地址和端口 10.116.2.65:9400,10.116.2.66:9400 Settings settings = Settings.builder().put("cluster.name", clusterName).put("client.transport.sniff", true).build(); client = new PreBuiltTransportClient(settings); String[] ars = address.split(","); for (String ar : ars) { String[] ipAndPort = ar.split(":"); client.addTransportAddress(new TransportAddress(InetAddress.getByName(ipAndPort[0]), Integer.parseInt(ipAndPort[1]))); } logger.info("Init transportClient success !!!"); } catch (Exception e) { logger.error("Init transportClient error", e); } } public static ESClientService getInstance() { return INSTANCE; } public TransportClient getClient() { return client; } public void close() { try { client.close(); } catch (Exception e) { logger.error("close transportClient error", e); } } }
测试类:
import cn.com.gome.flash.common.client.ESClientService; import org.elasticsearch.action.search.SearchRequestBuilder; import org.elasticsearch.action.search.SearchResponse; public class TestElaselasticsearch { public static void main(String[] args) { SearchRequestBuilder searchRequestBuilder = ESClientService.getInstance().getClient().prepareSearch("索引名"); //查询语句开始 中间的脑补吧,下一章说语句拼接 //查询语句结束 SearchResponse response = searchRequestBuilder.execute().actionGet(); } }