微服务之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);
高亮:



浙公网安备 33010602011771号