1 packagecom.es.util.elasticsearch;2
3 importlombok.Data;4 importorg.apache.log4j.Logger;5 importorg.elasticsearch.action.search.SearchRequestBuilder;6 importorg.elasticsearch.action.search.SearchResponse;7 importorg.elasticsearch.client.transport.TransportClient;8 importorg.elasticsearch.common.settings.Settings;9 importorg.elasticsearch.common.transport.InetSocketTransportAddress;10 importorg.elasticsearch.common.unit.TimeValue;11 importorg.elasticsearch.transport.client.PreBuiltTransportClient;12 importorg.springframework.stereotype.Component;13
14 importjavax.annotation.PostConstruct;15 importjava.net.InetAddress;16 importjava.net.UnknownHostException;17
18 /**
19 *@author: huobaopaocai20 * @date : 2018/2/15 - 10:3121 * @Description : elasticsearch客户端22 */
23 @Component("elasticsearchConstant")24 @Data25 public classElasticsearchConstant {26
27 public static final Logger LOG = Logger.getLogger(ElasticsearchConstant.class);28
29 /**
30 * es服务器地址31 */
32 private String host = "127.0.0.1";33
34 /**
35 * es服务器端口36 */
37 private Integer port = 9300;38
39 /**
40 * es集群名称41 */
42 private String clusterName = "huobaopaocai-es-cluster";43
44 /**
45 * es索引名称46 */
47 private String esIndex = "ecommerce";48
49 /**
50 * es索引下type名称51 */
52 private String esType = "product";53
54 public TransportClient client = null;55
56 privateSearchRequestBuilder requestBuilder;57
58 private Long TIME_OUT = 20L;59
60 @PostConstruct61 public voidinit() {62 Settings settings =Settings.builder()63 .put("cluster.name", clusterName)64 .put("client.transport.sniff", true)65 .put("client.transport.ping_timeout", "600s")66 .build();67 try{68 client = newPreBuiltTransportClient(settings)69 .addTransportAddress(newInetSocketTransportAddress(InetAddress.getByName(host), port));70 } catch(UnknownHostException e) {71 LOG.error(e, e.getCause());72 }73 }74
75 /**
76 * 初始化SearchRequestBuilder77 *@return
78 */
79 publicSearchRequestBuilder initRequestBuilder() {80 requestBuilder =client.prepareSearch(esIndex).setTypes(esType);81 returnrequestBuilder;82 }83
84 /**
85 * 执行es操作86 *@paramrequestBuilder87 *@return
88 */
89 publicSearchResponse execute(SearchRequestBuilder requestBuilder) {90 SearchResponse searchResponse =requestBuilder.setTimeout(TimeValue.timeValueSeconds(TIME_OUT)).execute().actionGet();91 returnsearchResponse;92 }93 }