elasticsearch
的Java
客戶端目前有兩類
(1)TransportClient
爲ES原生的客戶端,不能執行原生的DSL
語句必須使用它的Java Api
方法;
(2)以Rest Api
的missing client
,最典型的是jest
。這種客戶端可直接使用DSL
語句拼接指定字符串,直接傳送給服務端,返回給json
字符串再解析。
elasticsearch官網宣佈計劃在7.0以後的版本中廢除TransportClient,以RestClient爲主!
一、Jest依賴包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/io.searchbox/jest -->
<dependency>
<groupId>io.searchbox</groupId>
<artifactId>jest</artifactId>
<version>5.3.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/net.java.dev.jna/jna -->
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>4.5.1</version>
</dependency>
二、配置application.properties
spring.elasticsearch.jest.uris=http://192.168.43.111:9200
三、測試代碼
import io.searchbox.client.JestClient;
import io.searchbox.core.Search;
import io.searchbox.core.SearchResult;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
@RunWith(SpringRunner.class)
@SpringBootTest
public class GmallServiceApplicationTests {
@Autowired
JestClient jestClient;
@Test
public void testEs() throws IOException {
String query="{\n" +
" \"query\": {\n" +
" \"match\": {\n" +
" \"actorList.name\": \"張譯\"\n" +
" }\n" +
" }\n" +
"}";
Search search = new Search.Builder(query).addIndex("movie_chn").addType("movie_type_chn").build();
SearchResult result = jestClient.execute(search);
List<SearchResult.Hit<HashMap, Void>> hits = result.getHits(HashMap.class);
for (SearchResult.Hit<HashMap, Void> hit : hits) {
HashMap source = hit.source;
System.err.println("source = " + source);
}
}
}
控制檯打印(成功)
kibana控制檯測試
☝上述分享來源個人總結,如果分享對您有幫忙,希望您積極轉載;如果您有不同的見解,希望您積極留言,讓我們一起探討,您的鼓勵將是我前進道路上一份助力,非常感謝!我會不定時更新相關技術動態,同時我也會不斷完善自己,提升技術,希望與君同成長同進步!
☞本人博客:https://coding0110lin.blog.csdn.net/ 歡迎轉載,一起技術交流吧!