微服务之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);
复制代码

 

高亮:

 

 

 

posted @   无火祭祀场  阅读(37)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示