微服務之elasticsearch之RestClient查詢文件
阿新 • • 發佈:2022-12-02
快速入門
我們通過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);