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
public RestClient ESLowLevelClient(
@Value("${nosql.elasticsearch.host}") String hostName,
@Value("${nosql.elasticsearch.port}") int port,
@Value("${nosql.elasticsearch.scheme}") String scheme
){
return RestClient.builder(
new HttpHost(hostName, port, scheme)
).build();
}
4.2 測試
現在我們在控制器裡面使用@Resource註解初始化RestClient對象,然後使用它去操作ES搜索引擎。
因為RestClient是通過標準的HTTP方式操作ES,所以福哥就只提供兩個示例,大家可以舉一反三。
@Resource
RestClient restClient;
就一句話,就可以得到RestClient對象的實例了。
4.3 索引列表
現在福哥通過RestClient獲取索引列表,由於RestClient只支持JSON格式,所以我們使用EntityUtils轉換了一下。
4.3.1 代碼
@RequestMapping ("/net.tongfu.tfspring.elasticsearch")
private String testElasticsearch()
throws IOException {
String out = "";
Request request = new Request("GET", "/_cat/indices");
Response response = restClient.performRequest(request);
HttpEntity httpEntity = response.getEntity();
out += EntityUtils.toString(httpEntity);
return out;
}
4.3.2 效果

5. 總結
福哥研究了半天都沒有人去用RestClient去完成查詢功能,這個只能等福哥慢慢研究後再和大家分享了~~
未完待續。。。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/233024.html