前言

本节主要实现条件查询中的组合查询,范围查询

实现

编写组合查询
ESTest_Doc_Cond_Query_Com.java

package com.zwy.es;import org.apache.http.HttpHost;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.SearchHits;
import org.elasticsearch.search.builder.SearchSourceBuilder;import java.io.IOException;public class ESTest_Doc_Cond_Query_Com {public static void main(String[] args) throws IOException {//RestHighLevelClient esClient = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http")));// 组合查询数据SearchRequest request = new SearchRequest();request.indices("users");SearchSourceBuilder builer = new SearchSourceBuilder();BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();boolQueryBuilder.must(QueryBuilders.matchQuery("age", 30));boolQueryBuilder.must(QueryBuilders.matchQuery("sex", "男"));
//        boolQueryBuilder.mustNot(QueryBuilders.matchQuery("sex", "女"));builer.query(boolQueryBuilder);request.source(builer);SearchResponse response = esClient.search(request, RequestOptions.DEFAULT);SearchHits hits = response.getHits();System.out.println(hits.getTotalHits());  // 打印System.out.println(response.getTook());  // 打印for (SearchHit hit : hits) {System.out.println(hit.getSourceAsString());}// 关闭ES客户端esClient.close();}
}

编写范围查询
ESTest_Doc_Cond_Query_Range.java

package com.zwy.es;import org.apache.http.HttpHost;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.query.RangeQueryBuilder;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.SearchHits;
import org.elasticsearch.search.builder.SearchSourceBuilder;import java.io.IOException;public class ESTest_Doc_Cond_Query_Range {public static void main(String[] args) throws IOException {//RestHighLevelClient esClient = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http")));// 范围查询数据SearchRequest request = new SearchRequest();request.indices("users");SearchSourceBuilder builer = new SearchSourceBuilder();RangeQueryBuilder rangeQuery = QueryBuilders.rangeQuery("age");  // 设定年龄范围rangeQuery.gte(30);rangeQuery.lte(40);builer.query(rangeQuery);request.source(builer);SearchResponse response = esClient.search(request, RequestOptions.DEFAULT);SearchHits hits = response.getHits();System.out.println(hits.getTotalHits());  // 打印System.out.println(response.getTook());  // 打印for (SearchHit hit : hits) {System.out.println(hit.getSourceAsString());}// 关闭ES客户端esClient.close();}
}

文件结构

运行

运行ESTest_Doc_Cond_Query_Com.java

运行ESTest_Doc_Cond_Query_Range.java

【ES】JavaAPI学习-07 组合查询 范围查询相关推荐

  1. MySQL入门学习:组合查询

    一.组合查询 多数SQL查询都只包含从一个或多个表中返回数据的单条SELECT语句.MySQL也允许执行多个查询(多条SELECT语句),并将结果作为单个查询结果集返回.这些组合查询通常称为并(uni ...

  2. JavaWeb黑马旅游网-学习笔记07【旅游线路查询】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  3. es dsl多条件组合查询(转)

    [README]在不评分的情况下, 推荐使用filter 过滤查询,因为不评分,查询性能优于评分性能: 转:https://www.elastic.co/guide/cn/elasticsearch/ ...

  4. 《MySQL必知必会》学习笔记——组合查询、全文本搜索

    文章目录 第17章 组合查询 1. 创建组合查询 2. UNION规则 3. 包含或取消重复的行 4. 对组合查询结果排序 第18章 全文本搜索 1. 理解全文本搜索 2. 使用全文本搜索 2.1 启 ...

  5. MySql学习之组合查询(UNION)和全文本搜索(Match()和Against())

    组合查询 一.何为组合查询? 组合查询的目的就是利用UNION操作符将多条SELECT语句的查询结果组合成一个结果集,供我们使用. 有两种基本情况下需要使用组合查询: 1.在单个查询中从不同的表返回类 ...

  6. mysql查询数据为0的所有字段6_MySQL8.0 初级学习笔记(六)查询数据

    MySQL8.0 初级学习笔记(六)查询数据 MySQL8.0 初级学习笔记(六)查询数据 查询有多种方法:单表查询,使用集合函数查询,连接查询,子查询,合并查询结果,为表和字段取别名,使用正则表达式 ...

  7. mysql text 查询速度_数据库学习之让索引加快查询速度(四)

    数据库学习之让索引加快查询速度 目录 索引简介 mysql的索引分类 创建索引 添加与删除索引 索引简介 索引在MySQL中也叫做"键",是存储引擎用于快速找到记录的一种数据结构. ...

  8. sql学习练习题_学习SQL:练习SQL查询

    sql学习练习题 Today is the day for SQL practice #1. In this series, so far, we've covered most important ...

  9. sql 查询手动创建的表_学习SQL:使用SQL查询手动创建报告

    sql 查询手动创建的表 In the previous two articles, we've practiced SQL queries and went through a few more e ...

最新文章

  1. java安全地生成128,256,512bit随机数
  2. Mac OS X 10.8.5 安装编译glib
  3. 出入口控制系统工程设计规范_【理论冲刺】传说中的隐藏书目——《公园设计规范》...
  4. leetcode 725. Split Linked List in Parts | 725. 分隔链表(Java)
  5. STL的可持久化数组
  6. python list方法说明_对python中list的五种查找方法说明
  7. ieee5节点系统图_存储系统的的关键技术之自精简技术
  8. 从mediaserver入手快速理解binder机制(最简单理解binder)
  9. C++11 外部模板
  10. php数据库图片读取不全,图片显示不出来,但是数据库里有显示
  11. 单片机学习笔记(持续更新中)
  12. win8计算机时间同步时出错,win10电脑windows time同步出错的解决办法
  13. 【硬件工程师】芯片手册阅读-电阻式触摸屏控制芯片
  14. 国产十大手表品牌有哪些?值得买的中国手表品牌推荐
  15. c语言 计算平均分
  16. ACL流量控制工具-- 王贝的学习笔记
  17. 小程序替换二维码logo并添加文字
  18. Python美股量化交易填坑记录——13c.Vegas隧道交易机器人(实盘记录)
  19. Anaconda3如何安装keras
  20. 树莓派python播放报警声(usb音响)

热门文章

  1. 大白话带你认识 ZooKeeper !重要概念一网打尽!
  2. asp.net core2.0大白话带你入门
  3. python中3D地形图展示16bit图像维度数据的工具包
  4. Intellij IDEA 使用教程(十二)IDEA常用插件(持续更新)
  5. IpsecVpn -nat穿越-01
  6. 第十七届全国大学生智能汽车比赛
  7. node.js+uni计算机毕设项目基于微信小程序的网上购物系统(程序+小程序+LW)
  8. HTTP状态码413(413 Request Entuty Too Large)
  9. bst java_Java经典算法:最大的BST子树
  10. 软件开发中的常用颜色对照表