过滤查询

简介

准确来说,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--过滤查询相关推荐

  1. [Elasticsearch] 过滤查询以及聚合(Filtering Queries and Aggregations)

    原文地址为: [Elasticsearch] 过滤查询以及聚合(Filtering Queries and Aggregations) 本章翻译自Elasticsearch官方指南的Filtering ...

  2. elasticsearch使用Filter过滤查询操作(使用marvel插件)

    1.filter查询语句 1)通过filter可以获取想要的数据 2)通过filter查询有缓存,大大提高查询效率,所以推荐使用filter查询 2.cache缓存 3.实例数据,准备数据: POST ...

  3. ElasticSearch 7.6 多子文档过滤查询

    一.es 7.x 父子文档的 field 及官方文档地址 我找了半天,原来官方本来就有教程,只不过专有名词没用对,所以在找官方文档的时候,一直徘徊不前,不说了,先去弄写代码了.后面有时间了在继续写. ...

  4. 【elasticsearch】查询语句的分词过滤和不分词过滤

    文章目录 [elasticsearch]查询语句的分词过滤和不分词过滤 一.分词查询 二.全词查询 [elasticsearch]查询语句的分词过滤和不分词过滤 在对 elasticsearch 进行 ...

  5. ElasticSearch bool过滤查询

    bool过滤查询 可以实现组合过滤查询 格式: { "bool": { "must: 0, "should: O, "must not":0 ...

  6. Elasticsearch高级查询2:ES 高级查询

    一.高级查询 1.简介 Elasticsearch基于JSON提供完整的查询DSL(Domain Specific Language:领域特定语言)来定义查询. 基本语法: GET /索引名/类型名/ ...

  7. elasticsearch的查询器query与过滤器filter的区别

    很多刚学elasticsearch的人对于查询方面很是苦恼,说实话es的查询语法真心不简单-  当然你如果入门之后,会发现elasticsearch的rest api设计是多么有意思. 说正题,ela ...

  8. 好玩的ES--第三篇之过滤查询,整合SpringBoot

    好玩的ES--第三篇之过滤查询,整合SpringBoot 过滤查询 过滤查询 使用 类型 term . terms Filter ranage filter exists filter ids fil ...

  9. Elasticsearch的查询

    本文介绍使用Elasticsearch进行查询的语句和代码. 查询界面如下: 知识点: must 文档必须匹配 must 选项下的查询条件,相当于逻辑运算的 AND,且参与文档相关度的评分. shou ...

  10. Elasticearch Filter Query 过滤查询--(五)

    Elasticearch Filter Query 过滤查询 1,过滤查询 ES查询操作分为2种:查询(query)和 过滤(filter). 1. Query,默认计算每个返回文档的得分,然后根据得 ...

最新文章

  1. 产品Backlog(Product Backlog)是什么?
  2. Ubuntu被曝严重漏洞:切换系统语言+输入几行命令,就能获取root权限
  3. Java 自动装箱与拆箱
  4. RabbitMQ教程C#版 - 工作队列
  5. python之路——迭代器与生成器
  6. 大数据技术之 Kafka (第 3 章 Kafka 架构深入 ) Kafka 消费者
  7. 吴恩达机器学习6——机器学习算法改进、系统设计
  8. python restful api_用Python语言写一个restful API
  9. Oracle数据空间的管理
  10. SQLPro Studio for Mac(数据库管理器)2022.14
  11. Microsoft 安全公告 MS12-020 - 严重。请大家关注!!
  12. fanuc系统屏蔽服务器,FANUC系统常见的3种锁轴方法及坐标轴字母含义
  13. Openwrt_树莓派B+_Wifi中继
  14. 闲聊企业数字化转型(1)-供应链数字化
  15. JavaScript之多小球非对心弹性碰撞
  16. 关于大学生寝室点外卖的调研报告
  17. Python写幂函数
  18. 关于LNK2005 _main 已经在 某某某.obj 中定义的问题
  19. python绘制人物肖像(词云)
  20. 管理员同志,回收站博文希望得到恢复,万分感谢

热门文章

  1. 启天m420进入不了bios_联想启天M420台式机怎么用U盘装win10系统(附带bios设置)
  2. 学计算机2本理科大学排名,2021理科二本大学排名 有哪些好的二本理科大学
  3. 【慕伏白教程】在Vmware中安装Ubuntu流程
  4. Creative Commons(知识共享)
  5. 思考1:项目制在创业公司实行的思索
  6. 服务频繁出现100毫秒的延迟,原因是什么?
  7. 软件测试行业前景发展怎么样?从事软测到底有没有出路
  8. 拿到了摩根斯坦利IT部门offer(2018 Morgan Stanley Technology Summer Analyst)
  9. 【软件测试】某银行B和某公司C发行联名信用卡
  10. 《德阳市餐饮服务业油烟污染防治管理办法(征求意见稿)》之创新油烟监管