Es学习第八课, Filter、bool和范围查询
2024-08-31 16:36:07
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
}
}
}
}
}
}
最新文章
- VS2010中没有ado.net entity data model实体数据模型这一选项-解决办法
- [转]centos中wget的使用方法
- Solaris系统管理(一)
- Mybatis的if test字符串比较问题
- redis的hash操作在集中式session中的应用
- jQuery实现的向下推送图文信息滚动效果
- TypeScript环境搭建
- python----特性003
- poj 3680 Intervals(费用流)
- 填充Z形二维数组
- Python语法
- .NET中可空值类型实现原理
- Deepin MongoDB安装&;使用总结
- Verilog有符号数处理
- 牛客练习赛42(A,B)
- JS日历控件优化(增加时分秒)
- eclipse 远程调试mapreduce
- python之模块csv之CSV文件的写入(基本结构)
- eclipse 项目svn忽略不需要提交的文件
- 【redis的搭建】centos6.4下搭建redis
热门文章
- [CF1167D]Bicolored RBS题解
- linux vim设置和 快捷命令配置
- 【HDOJ6630】permutation 2(递推)
- 服务器在没有request请求时是什么状态
- CSU 1551 Longest Increasing Subsequence Again(树状数组 或者 LIS变形)
- save change is not permitted
- 理解JavaScript中的回调函数
- Linux运维知识之linux shell date 用当天时间做备份文件名
- Altium Designer chapter5总结
- MySQL 查询语句--------------进阶5:分组查询