文章目录

  • 概述
  • 数据准备
  • 小示例
    • 搜索浏览量在30~60之间的帖子
    • 搜索发帖日期在最近1个月的帖子

概述

继续跟中华石杉老师学习ES,第五篇

课程地址: https://www.roncoo.com/view/55

range filter已经被range query取代了,所以我们这里直接来看 range query吧

https://www.elastic.co/guide/en/elasticsearch/reference/6.4/query-dsl-range-filter.html

https://www.elastic.co/guide/en/elasticsearch/reference/7.0/query-dsl-range-query.html#query-dsl-range-query


数据准备

为了演示 范围查询 ,我们增加个 浏览量 view_cnt字段,更新DSL如下

POST /forum/article/_bulk
{"update":{"_id":"1"}}
{"doc":{"view_cnt":30}}
{"update":{"_id":"2"}}
{"doc":{"view_cnt":50}}
{"update":{"_id":"3"}}
{"doc":{"view_cnt":100}}
{"update":{"_id":"4"}}
{"doc":{"view_cnt":80}}

小示例

搜索浏览量在30~60之间的帖子

老版本的写法

GET /forum/article/_search
{"query": {"constant_score": {"filter": {"range": {"view_cnt": {"gt": 30,"lt": 60}}}}}
}

新写法 (推荐)

GET /forum/article/_search
{"query": {"range": {"view_cnt": {"gt": 30,"lt": 60}}}
}


搜索发帖日期在最近1个月的帖子

为了演示,我们新增一条数据id=5的数据 ,如下

POST /forum/article/_bulk
{"index":{"_id":5}}
{"articleID":"DHJK-B-1395-#Ky5","userID":3,"hidden":false,"postDate":"2019-06-01","tag":["elasticsearch"],"tag_cnt":1,"view_cnt":10}

今天是5月12号,上面的6月1号搞错了,再把 postDate 改为 2019-05-01

POST /forum/article/_bulk
{"update":{"_id":"5"}}
{"doc":{"postDate":"2019-05-01"}}

查看下id=5的数据

那 将需求翻译成 es dsl如下

老版本的写法:

GET /forum/article/_search
{"query": {"constant_score": {"filter": {"range": {"postDate": {"gt": "2019-05-12||-30d"}}}}}
}GET /forum/article/_search
{"query": {"constant_score": {"filter": {"range": {"postDate": {"gt": "now-30d"}}}}}
}

now-30d


GET /forum/_search
{"query": {"range": {"postDate": {"gte": "now-30d"}}}
}

2019-05-12||-30d

GET /forum/_search
{"query": {"range": {"postDate": {"gte": "2019-05-12||-30d"}}}
}

总结一下:

  • range,就像sql中的between
  • range query 做范围过滤

白话Elasticsearch05- 结构化搜索之使用range query来进行范围过滤相关推荐

  1. elasticsearch 深入 —— 结构化搜索

    结构化搜索 结构化搜索(Structured search) 是指有关探询那些具有内在结构数据的过程.比如日期.时间和数字都是结构化的:它们有精确的格式,我们可以对这些格式进行逻辑操作.比较常见的操作 ...

  2. 【Elasticsearch 权威指南学习笔记】结构化搜索

    结构化搜索(Structured search) 是指有关探询那些具有内在结构数据的过程.比如日期.时间和数字都是结构化的:它们有精确的格式,我们可以对这些格式进行逻辑操作.比较常见的操作包括比较数字 ...

  3. elasticsearch 结构化搜索_在案例中实战基于range filter来进行范围过滤

    2019独角兽企业重金招聘Python工程师标准>>> 课程大纲 1.为帖子数据增加浏览量的字段 POST /forum/article/_bulk { "update&q ...

  4. es过滤指定数据 java_elasticsearch 结构化搜索_在案例中实战基于range filter来进行范围过滤...

    课程大纲 1.为帖子数据增加浏览量的字段 POST /forum/article/_bulk { "update": { "_id": "1" ...

  5. 白话Elasticsearch04- 结构化搜索之使用terms query搜索多个值以及多值搜索结果优化

    文章目录 terms概述 准备数据 小例子 搜索articleID为KDKE-B-9947-#kL5或QQPX-R-3956-#aD8的帖子 搜索tag中包含java的帖子 优化搜索结果,仅仅搜索ta ...

  6. 白话Elasticsearch01- 结构化搜索之使用term query来搜索数据

    文章目录 需求描述 ES版本 _bulk 批量写几条数据 _bulk 用法 返回结果分析 字段Dynamic Mapping Dynamic Mapping 中 text类型的字段 查看分词 fiel ...

  7. Elasticsearch结构化搜索_filter执行原理深度剖析(bitset机制与caching机制)

    1)在倒排索引中查找搜索串,获取document list date来举例 word doc1 doc2 doc32017-01-01 * * 2017-02-02 * * 2017-03-03 * ...

  8. 白话Elasticsearch17-深度探秘搜索技术之match_phrase query 短语匹配搜索

    文章目录 概述 官网 近似匹配 例子 match query match phrase query term position match_phrase的基本原理 概述 继续跟中华石杉老师学习ES,第 ...

  9. SQL结构化数据查询语言培训讲义

    一.SQL语言 SQL是结构化的查询语言(Structured Query Language),是关系型数据库通讯的标准语言.第一代SQL产品是Oracle,它是当今关系型数据库技术的领导之一. 1. ...

最新文章

  1. 在Ubuntu 14.04 64bit上编译并研究State Threads网络线程库源码
  2. R语言spine作棘状图
  3. html5 Web Workers
  4. Android使用NDK---函数参数传递-基本类型和数组
  5. SQL开发中容易忽视的一些小地方( 三)
  6. Office EXCEL 中如何让一个单元格的数据链接到另一个工作表的数据
  7. C/C++二维数组的用法
  8. 软件项目开发流程以及人员职责,软件工程中五种常用的软件开发模型整理
  9. TensorFlow 2 实现线性回归和非线性回归
  10. Moment工具库学习
  11. 豌豆怎么做好吃 这几种做法很不错
  12. 基于位置指纹匹配的定位算法
  13. 图解Java数据结构之双向链表
  14. Car-eye JT/T1078 视频服务器开发过程中的音频处理
  15. 计算机网络的便件功能
  16. 《第一行代码》封面诞生记
  17. 计算机系统字体安装程序,windows系统字体安装方法:使用字体安装软件-windows技巧-电脑技巧收藏家...
  18. ClusterProfiler在线基因集富集分析,支持自定义基因集、任意物种
  19. 通达OA系统11.2漏洞
  20. 一、win10 安装PR,但是系统弹出command line option syntax error

热门文章

  1. socket 非阻塞 linux,linux 非阻塞式socket编程求助。。
  2. gcc a.c 究竟经历了什么
  3. pie hist plot boxplot
  4. 31. Leetcode 82. 删除排序链表中的重复元素 II (链表-双指针)
  5. tableau2020.2版本可视化数据分析 新功能介绍
  6. Linux疑难杂症解决方案100篇(八)-文本处理工具与bash的特性
  7. java 程序片段_20个非常有用的Java程序片段
  8. java 获取页面元素的位置_Selenium Java 页面元素定位2
  9. python前缀表达式求值_python数据结构与算法 11 后缀表达式求值
  10. 电力系统继电保护原理及仿真_电力系统继电保护(529页)