说明:
spring并不能在配置文件中对es bean进行管控,除非使用elasticsearchTemplate。
1. 配置类
@Configuration
public class ESFactory {
@Value("${es.ip}")
private String ES_IP;
@Value("${es.port}")
private int ES_PORT;
/**
* 注入的ElasticSearch实例
* @author xdc
* @date 2016年6月14日 下午2:20:20
* @return
* @version V1.0
*/
@Bean(name = "client")
public Client getESClient(){
Client client = null;
try {
client = TransportClient.builder().build()
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(ES_IP), ES_PORT));
}
catch (UnknownHostException e) {
e.printStackTrace();
}
return client;
}
}
2. 使用示例
@Autowired
private Client client;
public void getBarterAll() {
SearchResponse response = client.prepareSearch("db_procurement")
.setTypes("t_order")
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setFrom(0).setSize(3).setExplain(true)
.execute()
.actionGet();
SearchHits sh = response.getHits();
for(SearchHit s : sh){
System.out.println(s.getSourceAsString());
}
System.out.println(response.getHits());
}