1. 程式人生 > 其它 >微服務之elasticsearch之RestClient查詢文件

微服務之elasticsearch之RestClient查詢文件

快速入門

我們通過match_all來演示下基本的API,先看請求DSL的組織:

@Test
void testMatchAll() throws IOException {
    // 1.準備Request
    SearchRequest request = new SearchRequest("hotel");
    // 2.組織DSL引數 
    request.source()
    .query(QueryBuilders.matchAllQuery());
    // 3.傳送請求,得到響應結果
    SearchResponse response = client.search(request, RequestOptions.DEFAULT);
    
// ...解析響應結果 }

RestAPI中其中構建DSL是通過HighLevelRestClient中的resource()來實現的,其中包含了查詢、排序、分頁、高亮等所有功能:

RestAPI中其中構建查詢條件的核心部分是由一個名為QueryBuilders的工具類提供的,其中包含了各種查詢方法:

查詢的基本步驟是: 建立SearchRequest物件 準備Request.source(),也就是DSL。 QueryBuilders來構建查詢條件 傳入Request.source() 的 query() 方法 傳送請求,得到結果 解析結果(參考JSON結果,從外到內,逐層解析)

全文檢索查詢

精確查詢

複合查詢-boolean query

精確查詢常見的有term查詢和range查詢,同樣利用QueryBuilders實現:

排序和分頁:

//頁碼,每頁大小
        int page=1 ,size = 5;
        //準備request
        SearchRequest request = new SearchRequest("hotel");
        //準備DSL
        request.source().query(QueryBuilders.matchAllQuery());
        //排序
request.source().sort("price", SortOrder.ASC); //分頁 request.source().from((page-1)*size).size(5); //傳送請求 SearchResponse response = client.search(request, RequestOptions.DEFAULT); extracted(response); System.out.println(response);

高亮: