ELK 学习笔记之 elasticsearch bool组合查询
2024-10-19 11:35:59
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 过滤器上下文中,查询的结果可以被缓存。
最新文章
- Consul-template的简单应用:配置中心,服务发现与健康监测
- [翻译]:怎样从C/C++代码中对C#进行回调
- path入门 20141102-1405
- mysql命令行基本操作
- android menu 开发
- 鼠标移动到表格的TD上的时候显示成一个手型的样子怎么做?
- node http.request请求
- PHP 类中的常量
- 同一个页面多个CALayer重绘的办法
- Linux学习之head命令
- Java基础笔记4
- 强力推荐各位攻城狮查看,收藏IT职业技能图谱(全套13张)
- java类的加载和执行顺序
- PHP 将大量数据导出到 Excel 的方法
- CEF3开发者系列之Cookies管理和共享
- Eclipse Oxygen创建maven web项目(二)
- 使用JSP页面生成PDF报表
- oc Delegate
- koa源码阅读[0]
- 当Windows Server 2012的主DC出了问题, 如何迁移其上的FSMO角色?