1.1 介绍
福哥需要用Java操作Elasticsearch搜索引擎,经过了一番折腾终于搞定了。现在福哥整理了用Java操作Elasticsearch的方法,分享给大家。有需要的童鞋可以参考一下!
在Java里面操作Elasticsearch搜索引擎是通过官方的elasticsearch库实现的。
2. 安装
2.1 pom.xml
首先我们在pom.xml里面安装依赖库elasticsearch。
<!--elasticsearch-->
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.13.0</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-client</artifactId>
<version>7.13.0</version>
</dependency>
2.2 application.properties
设置ES参数
##############################################################################
#elasticsearch
##############################################################################
nosql.elasticsearch.host=192.168.2.168
nosql.elasticsearch.port=9200
nosql.elasticsearch.scheme=http
3. 旧方案
3.1 org.elasticsearch.client.Client
这个官方说是一个简单的示例,不太适合多集群的环境,建议使用TransportClient这个客户端。


4. 使用
4.1 Bean
首先我们需要自己创建Bean来给RestClient使用,因为Spring boot不管这事儿。
@Bean
publicRestClientESLowLevelClient(
@Value("${nosql.elasticsearch.host}")StringhostName,
@Value("${nosql.elasticsearch.port}")intport,
@Value("${nosql.elasticsearch.scheme}")Stringscheme
){
returnRestClient.builder(
newHttpHost(hostName,port,scheme)
).build();
}
4.2 测试
现在我们在控制器里面使用@Resource注解初始化RestClient对象,然后使用它去操作ES搜索引擎。
因为RestClient是通过标准的HTTP方式操作ES,所以福哥就只提供两个示例,大家可以举一反三。
@Resource
RestClientrestClient;
就一句话,就可以得到RestClient对象的实例了。
4.3 索引列表
现在福哥通过RestClient获取索引列表,由于RestClient只支持JSON格式,所以我们使用EntityUtils转换了一下。
4.3.1 代码
@RequestMapping("/net.tongfu.tfspring.elasticsearch")
privateStringtestElasticsearch()
throwsIOException{
Stringout="";
Requestrequest=newRequest("GET","/_cat/indices");
Responseresponse=restClient.performRequest(request);
HttpEntityhttpEntity=response.getEntity();
out+=EntityUtils.toString(httpEntity);
returnout;
}
4.3.2 效果


5. 总结
福哥研究了半天都没有人去用RestClient去完成查询功能,这个只能等福哥慢慢研究后再和大家分享了~~
未完待续。。。