博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ELK 学习笔记之 elasticsearch bool组合查询
阅读量:7141 次
发布时间:2019-06-28

本文共 762 字,大约阅读时间需要 2 分钟。

elasticsearch bool组合查询:

 

相当于sql:where _type = 'books' and (price = 500 or title = 'bigdata')

Note:

  • must: 相当于and
  • should:相当于or
  • must_not:相当于not

判断属性为null:

 

Query与Filter

转载:http://www.cnblogs.com/xing901022/p/4975931.html

查询在Query查询上下文和Filter过滤器上下文中,执行的操作是不一样的:

查询上下文:

在查询上下文中,查询会回答这个问题——“这个文档匹不匹配这个查询,它的相关度高么?”

如何验证匹配很好理解,如何计算相关度呢?之前说过,ES中索引的数据都会存储一个_score分值,分值越高就代表越匹配。另外关于某个搜索的分值计算还是很复杂的,因此也需要一定的时间。

查询上下文 是在 使用query进行查询时的执行环境,比如使用search的时候。

过滤器上下文:

在过滤器上下文中,查询会回答这个问题——“这个文档匹不匹配?”

答案很简单,是或者不是。它不会去计算任何分值,也不会关心返回的排序问题,因此效率会高一点。

过滤上下文 是在使用filter参数时候的执行环境,比如在bool查询中使用Must_not或者filter

 

另外,经常使用过滤器,ES会自动的缓存过滤器的内容,这对于查询来说,会提高很多性能。

总结

1 查询上下文中,查询操作不仅仅会进行查询,还会计算分值,用于确定相关度;在过滤器上下文中,查询操作仅判断是否满足查询条件

2 过滤器上下文中,查询的结果可以被缓存。

 

转载于:https://www.cnblogs.com/AK47Sonic/p/7614839.html

你可能感兴趣的文章
python
查看>>
安全笔记
查看>>
创建密码报错ERROR 1372 (HY000)--案例
查看>>
给用户设置密码
查看>>
WMware ESXi 安装 Win2008 R2 找不到硬盘的解决办法
查看>>
RedHat7/Centos7修改默认网卡名为eth0
查看>>
一位身边淑女的软考感想文【转贴】
查看>>
系统吞吐量(TPS)、用户并发量、性能测试概念和公式
查看>>
英语四六级考试秘籍——听力篇
查看>>
ubuntu 12.10安装后需要做的那些事
查看>>
od快捷键
查看>>
php登陆绑定手机验证码使用阿里大于接口
查看>>
asp.net对连接字符串加密解密
查看>>
Windows下Java如何调用本地获取mac地址
查看>>
SpringBoot多线程执行task任务
查看>>
kubernetes Admission Controller 原理介绍
查看>>
生成ssh
查看>>
dev_queue_xmit()函数返回值问题
查看>>
js事件绑定的几种方式
查看>>
sendmail---stat=Service unavailable
查看>>