微服务之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);
高亮:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报