spring-es.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd ">
<context:component-scan base-package="com.es.esClientFactory" />
<bean id="esConf" class="org.es.conf.EsConf">
<constructor-arg value="master,slave,slave2" />
<constructor-arg value="elasticsearch" />
<constructor-arg value="9300" />
</bean>
</beans>
EsClientFactory.java
package com.es.esClientFactory;
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
import org.es.conf.EsConf;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class EsClientFactory {
@Autowired
private EsConf esConf;
@Bean(name = "esClient")
public Client getESClient() {
Settings settings = Settings.builder()
.put("cluster.name", esConf.getClusterName()).build();
Client client = new PreBuiltTransportClient(settings);
for (String ip : esConf.getIps().split(",")) {
try {
((TransportClient) client)
.addTransportAddress(new InetSocketTransportAddress(
InetAddress.getByName(ip), 9300));
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
return client;
}
}
EsServiceImpl.java
package org.taian.service.impl;
import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.client.Client;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
@Service
public class EsServiceImpl {
@Autowired
@Qualifier("esClient")
private Client client;
public GetResponse testes(){
GetResponse response = client.prepareGet("test", "t5", "285309").execute().actionGet();
System.out.println(response.toString());
System.out.println("configuration");
System.out.println(response.getSourceAsString());
return null;
}
}
ESContoller.java
package org.taian.web;
import java.util.Date;
import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.action.search.SearchResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.taian.service.ElasticsearchService;
import org.taian.service.impl.EsServiceImpl;
import org.taian.utils.HttpRequestUtil;
import org.taian.utils.JSONUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
@Controller
@RequestMapping("/myes")
public class ESController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
EsServiceImpl estest;
@ResponseBody
@RequestMapping(value="testes", method = { RequestMethod.GET, RequestMethod.POST }, produces="application/json")
public JSONObject testes(){
estest.testes();
return JSON.parseObject("");
}
}