当前位置: 首页 > article >正文

RestClient查询文档match查询、精确查询和布尔查询

目录

match查询

精确查询

布尔查询


match查询

全文检索的match和multi_match查询match_all的API基本一致。差别是查询条件,也就是query的部分。

因此,Java代码上的差异主要request.source().query()中的参数了。同样是利用QueryBuilders提供的方法:

而结果解析代码则完全一致,可以抽取并共享。

完整代码如下:

@Test
void testMatch() throws IOException {
    // 1.准备Request
    SearchRequest request = new SearchRequest("hotel");
    // 2.准备DSL
    request.source()
        .query(QueryBuilders.matchQuery("all", "如家"));
    // 3.发送请求
    SearchResponse response = client.search(request, RequestOptions.DEFAULT);
    // 4.解析响应
    handleResponse(response);

}

精确查询

精确查询主要是两者:

  • term:词条精确匹配
  • range:范围查询

与之前的查询相比,差异同样在查询条件,其它都一样。

查询条件构造的API如下:

布尔查询

布尔查询是用must、must_not、filter等方式组合其它查询,代码示例如下:

可以看到,API与其它查询的差别同样是在查询条件的构建,QueryBuilders,结果解析等其他代码完全不变。

完整代码如下:

@Test
void testBool() throws IOException {
    // 1.准备Request
    SearchRequest request = new SearchRequest("hotel");
    // 2.准备DSL
    // 2.1.准备BooleanQuery
    BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
    // 2.2.添加term
    boolQuery.must(QueryBuilders.termQuery("city", "杭州"));
    // 2.3.添加range
    boolQuery.filter(QueryBuilders.rangeQuery("price").lte(250));

    request.source().query(boolQuery);
    // 3.发送请求
    SearchResponse response = client.search(request, RequestOptions.DEFAULT);
    // 4.解析响应
    handleResponse(response);
}


http://www.kler.cn/news/355634.html

相关文章:

  • SSD |(七)FTL详解(中)
  • 轻松实现 API 接口限流:Bucket4j 在 Spring Boot 中的应用
  • 自适应权重
  • MongoDB集合(Collection)的详细使用说明
  • OpenAI重磅发布GPT-4O-Audio-Preview 语音也能“读懂”情绪!
  • 重塑企业数字化未来:物联网与微服务架构的战略性深度融合
  • 【设计一个恒流转恒压用于电池充电管理】2022-01-25
  • 判断推理学习
  • React Native 项目中使用 Expo Application Services (EAS) 进行多渠道打包
  • 分享一套SpringBoot+Vue民宿(预约)系统
  • Python画笔案例-087 绘制 旋转的文字
  • 人脸识别系统-特征算法
  • C++ 数组、递归两种方式实现二分查找
  • YOLOv8/YOLOv11使用web界面推理自己的模型,Gradio框架快速搭建
  • C++ 递归函数之分解质因子
  • Neuromnia是一家创新的AI平台用Llama为自闭症护理领域带来全新解决方案
  • 机器学习—基于随机森林的贷款可能性预测系统实现
  • 将 Ubuntu 系统中的 **swap** 空间从 2GB 扩展到 16GB
  • linux搭建elasticsearch
  • 分布式环境下验证码登录的技术实现