【ES】JavaAPI学习-07 组合查询 范围查询
前言
本节主要实现条件查询中的组合查询,范围查询
实现
编写组合查询
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 组合查询 范围查询相关推荐
- MySQL入门学习:组合查询
一.组合查询 多数SQL查询都只包含从一个或多个表中返回数据的单条SELECT语句.MySQL也允许执行多个查询(多条SELECT语句),并将结果作为单个查询结果集返回.这些组合查询通常称为并(uni ...
- JavaWeb黑马旅游网-学习笔记07【旅游线路查询】
Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...
- es dsl多条件组合查询(转)
[README]在不评分的情况下, 推荐使用filter 过滤查询,因为不评分,查询性能优于评分性能: 转:https://www.elastic.co/guide/cn/elasticsearch/ ...
- 《MySQL必知必会》学习笔记——组合查询、全文本搜索
文章目录 第17章 组合查询 1. 创建组合查询 2. UNION规则 3. 包含或取消重复的行 4. 对组合查询结果排序 第18章 全文本搜索 1. 理解全文本搜索 2. 使用全文本搜索 2.1 启 ...
- MySql学习之组合查询(UNION)和全文本搜索(Match()和Against())
组合查询 一.何为组合查询? 组合查询的目的就是利用UNION操作符将多条SELECT语句的查询结果组合成一个结果集,供我们使用. 有两种基本情况下需要使用组合查询: 1.在单个查询中从不同的表返回类 ...
- mysql查询数据为0的所有字段6_MySQL8.0 初级学习笔记(六)查询数据
MySQL8.0 初级学习笔记(六)查询数据 MySQL8.0 初级学习笔记(六)查询数据 查询有多种方法:单表查询,使用集合函数查询,连接查询,子查询,合并查询结果,为表和字段取别名,使用正则表达式 ...
- mysql text 查询速度_数据库学习之让索引加快查询速度(四)
数据库学习之让索引加快查询速度 目录 索引简介 mysql的索引分类 创建索引 添加与删除索引 索引简介 索引在MySQL中也叫做"键",是存储引擎用于快速找到记录的一种数据结构. ...
- sql学习练习题_学习SQL:练习SQL查询
sql学习练习题 Today is the day for SQL practice #1. In this series, so far, we've covered most important ...
- sql 查询手动创建的表_学习SQL:使用SQL查询手动创建报告
sql 查询手动创建的表 In the previous two articles, we've practiced SQL queries and went through a few more e ...
最新文章
- java安全地生成128,256,512bit随机数
- Mac OS X 10.8.5 安装编译glib
- 出入口控制系统工程设计规范_【理论冲刺】传说中的隐藏书目——《公园设计规范》...
- leetcode 725. Split Linked List in Parts | 725. 分隔链表(Java)
- STL的可持久化数组
- python list方法说明_对python中list的五种查找方法说明
- ieee5节点系统图_存储系统的的关键技术之自精简技术
- 从mediaserver入手快速理解binder机制(最简单理解binder)
- C++11 外部模板
- php数据库图片读取不全,图片显示不出来,但是数据库里有显示
- 单片机学习笔记(持续更新中)
- win8计算机时间同步时出错,win10电脑windows time同步出错的解决办法
- 【硬件工程师】芯片手册阅读-电阻式触摸屏控制芯片
- 国产十大手表品牌有哪些?值得买的中国手表品牌推荐
- c语言 计算平均分
- ACL流量控制工具-- 王贝的学习笔记
- 小程序替换二维码logo并添加文字
- Python美股量化交易填坑记录——13c.Vegas隧道交易机器人(实盘记录)
- Anaconda3如何安装keras
- 树莓派python播放报警声(usb音响)
热门文章
- 大白话带你认识 ZooKeeper !重要概念一网打尽!
- asp.net core2.0大白话带你入门
- python中3D地形图展示16bit图像维度数据的工具包
- Intellij IDEA 使用教程(十二)IDEA常用插件(持续更新)
- IpsecVpn -nat穿越-01
- 第十七届全国大学生智能汽车比赛
- node.js+uni计算机毕设项目基于微信小程序的网上购物系统(程序+小程序+LW)
- HTTP状态码413(413 Request Entuty Too Large)
- bst java_Java经典算法:最大的BST子树
- 软件开发中的常用颜色对照表