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
}
}
}
}
}
}

最新文章

  1. VS2010中没有ado.net entity data model实体数据模型这一选项-解决办法
  2. [转]centos中wget的使用方法
  3. Solaris系统管理(一)
  4. Mybatis的if test字符串比较问题
  5. redis的hash操作在集中式session中的应用
  6. jQuery实现的向下推送图文信息滚动效果
  7. TypeScript环境搭建
  8. python----特性003
  9. poj 3680 Intervals(费用流)
  10. 填充Z形二维数组
  11. Python语法
  12. .NET中可空值类型实现原理
  13. Deepin MongoDB安装&amp;使用总结
  14. Verilog有符号数处理
  15. 牛客练习赛42(A,B)
  16. JS日历控件优化(增加时分秒)
  17. eclipse 远程调试mapreduce
  18. python之模块csv之CSV文件的写入(基本结构)
  19. eclipse 项目svn忽略不需要提交的文件
  20. 【redis的搭建】centos6.4下搭建redis

热门文章

  1. [CF1167D]Bicolored RBS题解
  2. linux vim设置和 快捷命令配置
  3. 【HDOJ6630】permutation 2(递推)
  4. 服务器在没有request请求时是什么状态
  5. CSU 1551 Longest Increasing Subsequence Again(树状数组 或者 LIS变形)
  6. save change is not permitted
  7. 理解JavaScript中的回调函数
  8. Linux运维知识之linux shell date 用当天时间做备份文件名
  9. Altium Designer chapter5总结
  10. MySQL 查询语句--------------进阶5:分组查询