ElasticSearch--过滤查询
过滤查询
简介
准确来说,ES的查询操作分为2种:查询(query)
和过滤(filter)
。
- 查询就是我们之前用的query查询,它(查询)默认会计算每个返回文档的得分,然后根据得分排序。
- 过滤查询:先筛选出符合条件的文档,并且不计算得分,而且它可以缓存文档。
应用场景:
- 过滤适合用在大范围筛选数据,而查询则适合精确匹配数据。
- 一般情况下,我们应该先使用过滤操作过滤掉一部分数据,然后使用查询去精准匹配数据,提高查询效率
使用
- 过滤查询必须配合bool查询使用
GET /ems/emp/_search
{"query": {"bool": {"must": [{"match_all": {}} //查询条件],"filter": {....} //过滤条件}
}
注意:
- 在执行 filter 和 query 时,先执行 filter 在执行 query
- Elasticsearch会自动缓存经常使用的过滤器,以加快性能。
类型
term和terms
term过滤指定字段的一个关键词,term可以过滤指定多个关键词
GET /person/_search
{"query": {"bool": {"must": [{"match_all": {}}],"filter": [{"term": {"sign": "聪明"}}]}}
}
GET /person/_search
{"query": {"bool": {"must": [{"match_all": {}}],"filter": [{"terms": {"sign": ["聪明","愚蠢"]}}]}}
}
range
过滤指定字段的值的范围
GET /ems/emp/_search
{"query": {"bool": {"must": [{"term": {"name": {"value": "黄凯宇"}}}],"filter": {"range": {"age": {"gte": 7,"lte": 20}}}}}
}
exists filter
过滤指定字段不为空的文档
GET /ems/emp/_search
{"query": {"bool": {"must": [{"term": {"name": {"value": "中国"}}}],"filter": {"exists": {"field":"aaa"}}}}
}
ids filter
过滤指定ID数组中的文档
GET /ems/emp/_search
{"query": {"bool": {"must": [{"term": {"name": {"value": "中国"}}}],"filter": {"ids": {"values": ["1","2","3"]}}}}
}
ElasticSearch--过滤查询相关推荐
- [Elasticsearch] 过滤查询以及聚合(Filtering Queries and Aggregations)
原文地址为: [Elasticsearch] 过滤查询以及聚合(Filtering Queries and Aggregations) 本章翻译自Elasticsearch官方指南的Filtering ...
- elasticsearch使用Filter过滤查询操作(使用marvel插件)
1.filter查询语句 1)通过filter可以获取想要的数据 2)通过filter查询有缓存,大大提高查询效率,所以推荐使用filter查询 2.cache缓存 3.实例数据,准备数据: POST ...
- ElasticSearch 7.6 多子文档过滤查询
一.es 7.x 父子文档的 field 及官方文档地址 我找了半天,原来官方本来就有教程,只不过专有名词没用对,所以在找官方文档的时候,一直徘徊不前,不说了,先去弄写代码了.后面有时间了在继续写. ...
- 【elasticsearch】查询语句的分词过滤和不分词过滤
文章目录 [elasticsearch]查询语句的分词过滤和不分词过滤 一.分词查询 二.全词查询 [elasticsearch]查询语句的分词过滤和不分词过滤 在对 elasticsearch 进行 ...
- ElasticSearch bool过滤查询
bool过滤查询 可以实现组合过滤查询 格式: { "bool": { "must: 0, "should: O, "must not":0 ...
- Elasticsearch高级查询2:ES 高级查询
一.高级查询 1.简介 Elasticsearch基于JSON提供完整的查询DSL(Domain Specific Language:领域特定语言)来定义查询. 基本语法: GET /索引名/类型名/ ...
- elasticsearch的查询器query与过滤器filter的区别
很多刚学elasticsearch的人对于查询方面很是苦恼,说实话es的查询语法真心不简单- 当然你如果入门之后,会发现elasticsearch的rest api设计是多么有意思. 说正题,ela ...
- 好玩的ES--第三篇之过滤查询,整合SpringBoot
好玩的ES--第三篇之过滤查询,整合SpringBoot 过滤查询 过滤查询 使用 类型 term . terms Filter ranage filter exists filter ids fil ...
- Elasticsearch的查询
本文介绍使用Elasticsearch进行查询的语句和代码. 查询界面如下: 知识点: must 文档必须匹配 must 选项下的查询条件,相当于逻辑运算的 AND,且参与文档相关度的评分. shou ...
- Elasticearch Filter Query 过滤查询--(五)
Elasticearch Filter Query 过滤查询 1,过滤查询 ES查询操作分为2种:查询(query)和 过滤(filter). 1. Query,默认计算每个返回文档的得分,然后根据得 ...
最新文章
- 产品Backlog(Product Backlog)是什么?
- Ubuntu被曝严重漏洞:切换系统语言+输入几行命令,就能获取root权限
- Java 自动装箱与拆箱
- RabbitMQ教程C#版 - 工作队列
- python之路——迭代器与生成器
- 大数据技术之 Kafka (第 3 章 Kafka 架构深入 ) Kafka 消费者
- 吴恩达机器学习6——机器学习算法改进、系统设计
- python restful api_用Python语言写一个restful API
- Oracle数据空间的管理
- SQLPro Studio for Mac(数据库管理器)2022.14
- Microsoft 安全公告 MS12-020 - 严重。请大家关注!!
- fanuc系统屏蔽服务器,FANUC系统常见的3种锁轴方法及坐标轴字母含义
- Openwrt_树莓派B+_Wifi中继
- 闲聊企业数字化转型(1)-供应链数字化
- JavaScript之多小球非对心弹性碰撞
- 关于大学生寝室点外卖的调研报告
- Python写幂函数
- 关于LNK2005	_main 已经在 某某某.obj 中定义的问题
- python绘制人物肖像(词云)
- 管理员同志,回收站博文希望得到恢复,万分感谢
热门文章
- 启天m420进入不了bios_联想启天M420台式机怎么用U盘装win10系统(附带bios设置)
- 学计算机2本理科大学排名,2021理科二本大学排名 有哪些好的二本理科大学
- 【慕伏白教程】在Vmware中安装Ubuntu流程
- Creative Commons(知识共享)
- 思考1:项目制在创业公司实行的思索
- 服务频繁出现100毫秒的延迟,原因是什么?
- 软件测试行业前景发展怎么样?从事软测到底有没有出路
- 拿到了摩根斯坦利IT部门offer(2018 Morgan Stanley Technology Summer Analyst)
- 【软件测试】某银行B和某公司C发行联名信用卡
- 《德阳市餐饮服务业油烟污染防治管理办法(征求意见稿)》之创新油烟监管