Es学习第八课, Filter、bool和范围查询
Filter过滤查询
filter是不计算相关性的,同时可以缓存。因此filter速度快于query。
我们先在kibana上先添加数据来做准备
POST /lib4/items/_bulk
{ "index": { "_id": 1 }}
{ "price" : 40, "itemID" : "ID1001" }
{ "index": { "_id": 2 }}
{ "price" : 50, "itemID" : "ID1002" }
{ "index": { "_id": 3 }}
{ "price" : 25, "itemID" : "ID1004" }
{ "index": { "_id": 4 }}
{ "price" : 30, "itemID" : "ID1004" }
{ "index": { "_id": 5 }}
{ "price" : null, "itemID" : "ID1005" }
首先,我们过滤查询价格等于40的文档,如下写法
GET /lib4/items/_search
{
"query": {
"bool": {
"filter": [
{ "term":{"price":40}}
]
}
}
}
bool过滤查询
bool查询可以实现组合过滤查询
格式:
{"bool" : {"must":[],"should":[],"must_not":[] } }
must:必须满足的条件 (相当于and)
should:可以满足也可以不满足的条件 (相当于or)
must_not:不需要满足的条件 (相当于not)
GET /lib4/items/_search #满足价格是25或者ID是1004,同时价格不为30
{
"query": {
"bool":{
"should": [
{"term":{"price": 25}},
{"term":{"itemID": "id1004"}}
],
"must_not": [
{"term":{"price": 30}}
]
}
}
}
范围过滤
gt:>
lt:<
gte:>=
lte:<=
GET /lib4/items/_search #range表示取一定范围的数据
{
"query": {
"bool":{
"filter": {
"range": {
"price": {
"gt": 25,
"lte": 50
}
}
}
}
}
}
Es学习第八课, Filter、bool和范围查询的更多相关文章
- Elasticsearch7.X 入门学习第八课笔记-----索引模板和动态模板
原文:Elasticsearch7.X 入门学习第八课笔记-----索引模板和动态模板 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接: ...
- Es学习第三课, ElasticSearch基本的增删改查
前面两课我们了解了ES的基本概念并且学会了安装ES,这节课我们就来讲讲ES基本的增删改查:ES主要对外界提供的是REST风格的API,我们通过客户端操作ES本质上就是API的调用.在第一课我们就讲了索 ...
- Es学习第十一课,使用java操作elasticsearch
前面十节课我们已经把ES的基本概念和使用讲的差不多了,现在我们就用基于java来实际开发一个操作ES的小项目,带大家来一起练练手. 1.我们用IDEA创建一个maven项目 项目结构如上图所示,然后我 ...
- Es学习第十课,ElasticSearch集群搭建
前面几课我们已经把ES的基本概念和查询了解了,大家知道ES的核心优势就是天生支持分布式,所以,这课我们专门讲讲怎么搭建实现ES的集群部署. ES分布式原理 1.es分布式概念 主分片(Primary ...
- Es学习第六课, ES基本搜索_search
前面几课ES的基本概念.安装和分词都讲过了,下面我们就来实战一下ES的核心功能-搜索,这节课我们主要讲的是基本搜索 _search(注意:ES的关键字都要加前缀_,所以我们在定义索引.类型名称时不要带 ...
- Es学习第四课, 倒排索引
大家知道,ES的发明者初衷是想做一个搜索引擎给自己老婆用来搜菜谱,所以ES的核心工作就是做搜索,下面我们就开始讲关于搜索方面的知识点. DOC的概念我们第一课就讲过,它是ES存储数据的最小单元,我们再 ...
- Redis学习第八课:Redis高级实用特性(一)
Redis高级实用特性 注:我学习的环境是vmware7.1 + ubantu10.10+ redis 3.0.2 1.安全性 设置客户端连接后进行任何其他指定前需要的密码.因为redis速度相当快, ...
- Struts2学习第八课 声明式异常处理
异常处理:exception-mapping元素 exception-mapping元素:配置当前的action的声明式异常处理 exception-mapping元素有两个属性: --excepti ...
- Es学习第七课, term、terms、match等基本查询语法
term.terms查询 term query会去倒排索引中寻找确切的term,它并不知道分词器的存在,这种查询适合keyword.numeric.date等明确值的 term:查询某个字段里含有某个 ...
随机推荐
- layer.js插件
官方网址: http://layer.layui.com/
- HDU6599:求本质不同的子串(回文串)长度及数量
目录 hdu6599题意: manacher+后缀自动机+倍增 \(O(nlog(n))\) manacher+后缀数组+二分 \(O(nlog(n))\) 回文树(回文自动机) \(O(n)\) @ ...
- 黑马lavarel教程---2、获取用户输入
黑马lavarel教程---2.获取用户输入 一.总结 一句话总结: lavarel中获取用户输入可以通过Input外观模式和Request外观模式,两者的对应的方法啥的都一样,比如get.all.o ...
- JMeter 分布式调度压测部署
我们遇到jmeter被假死死了,这里有2个原因,一是jmeter原本是java写的,heap受硬件限制需要调优,二是单机无法分解超大并发比如100万+并发压测,因此,我们分二部走,首先我们需要进行jm ...
- vscode左侧文件不同颜色标识含义
代码里的左侧颜色标识: 红色,未加入版本控制; (刚clone到本地)绿色,已经加入版本控制暂未提交; (新增部分)蓝色,加入版本控制,已提交,有改动: (修改部分)白色,加入版本控制,已提交,无改动 ...
- Github建站笔记
下载Git 搜索"Git",在官网中根据系统版本下载,并双击打开,按默认已勾选组件点下一步; 勾选在Windows命令行窗口中使用Git: 使用推荐的OpenSSL库用于HTTPS ...
- 编程语言 - 大数据 - Hadoop
Hive - 特例函数 rlike
- fatal error C1047: The object or library file xxx was created with an older compiler than other objects
之前编译Cocos2DX时遇到过一次,这次又遇到了,记下解决方法,以防再来第三次. 这个错误是说链接的库或者文件是老版本编译器生成的,与当前编译器不符,比如这次用的预编译库是2015的,而我当前使用的 ...
- oracle创建sequence序列语法
在oracle中sequence就是序号,每次取的时候它会自动增加.sequence与表没有关系 1.create sequence create sequence SEQ_LOG_ID minval ...
- vim-tabe多标签切换
vim-tabe多标签切换 本文转载自https://www.cnblogs.com/liqiu/archive/2013/03/26/2981949.html 1.新建标签页 使用:tabe命令和文 ...