白话Elasticsearch05- 结构化搜索之使用range query来进行范围过滤
文章目录
- 概述
- 数据准备
- 小示例
- 搜索浏览量在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来进行范围过滤相关推荐
- elasticsearch 深入 —— 结构化搜索
结构化搜索 结构化搜索(Structured search) 是指有关探询那些具有内在结构数据的过程.比如日期.时间和数字都是结构化的:它们有精确的格式,我们可以对这些格式进行逻辑操作.比较常见的操作 ...
- 【Elasticsearch 权威指南学习笔记】结构化搜索
结构化搜索(Structured search) 是指有关探询那些具有内在结构数据的过程.比如日期.时间和数字都是结构化的:它们有精确的格式,我们可以对这些格式进行逻辑操作.比较常见的操作包括比较数字 ...
- elasticsearch 结构化搜索_在案例中实战基于range filter来进行范围过滤
2019独角兽企业重金招聘Python工程师标准>>> 课程大纲 1.为帖子数据增加浏览量的字段 POST /forum/article/_bulk { "update&q ...
- es过滤指定数据 java_elasticsearch 结构化搜索_在案例中实战基于range filter来进行范围过滤...
课程大纲 1.为帖子数据增加浏览量的字段 POST /forum/article/_bulk { "update": { "_id": "1" ...
- 白话Elasticsearch04- 结构化搜索之使用terms query搜索多个值以及多值搜索结果优化
文章目录 terms概述 准备数据 小例子 搜索articleID为KDKE-B-9947-#kL5或QQPX-R-3956-#aD8的帖子 搜索tag中包含java的帖子 优化搜索结果,仅仅搜索ta ...
- 白话Elasticsearch01- 结构化搜索之使用term query来搜索数据
文章目录 需求描述 ES版本 _bulk 批量写几条数据 _bulk 用法 返回结果分析 字段Dynamic Mapping Dynamic Mapping 中 text类型的字段 查看分词 fiel ...
- Elasticsearch结构化搜索_filter执行原理深度剖析(bitset机制与caching机制)
1)在倒排索引中查找搜索串,获取document list date来举例 word doc1 doc2 doc32017-01-01 * * 2017-02-02 * * 2017-03-03 * ...
- 白话Elasticsearch17-深度探秘搜索技术之match_phrase query 短语匹配搜索
文章目录 概述 官网 近似匹配 例子 match query match phrase query term position match_phrase的基本原理 概述 继续跟中华石杉老师学习ES,第 ...
- SQL结构化数据查询语言培训讲义
一.SQL语言 SQL是结构化的查询语言(Structured Query Language),是关系型数据库通讯的标准语言.第一代SQL产品是Oracle,它是当今关系型数据库技术的领导之一. 1. ...
最新文章
- 在Ubuntu 14.04 64bit上编译并研究State Threads网络线程库源码
- R语言spine作棘状图
- html5 Web Workers
- Android使用NDK---函数参数传递-基本类型和数组
- SQL开发中容易忽视的一些小地方( 三)
- Office EXCEL 中如何让一个单元格的数据链接到另一个工作表的数据
- C/C++二维数组的用法
- 软件项目开发流程以及人员职责,软件工程中五种常用的软件开发模型整理
- TensorFlow 2 实现线性回归和非线性回归
- Moment工具库学习
- 豌豆怎么做好吃 这几种做法很不错
- 基于位置指纹匹配的定位算法
- 图解Java数据结构之双向链表
- Car-eye JT/T1078 视频服务器开发过程中的音频处理
- 计算机网络的便件功能
- 《第一行代码》封面诞生记
- 计算机系统字体安装程序,windows系统字体安装方法:使用字体安装软件-windows技巧-电脑技巧收藏家...
- ClusterProfiler在线基因集富集分析,支持自定义基因集、任意物种
- 通达OA系统11.2漏洞
- 一、win10 安装PR,但是系统弹出command line option syntax error
热门文章
- socket 非阻塞 linux,linux 非阻塞式socket编程求助。。
- gcc a.c 究竟经历了什么
- pie hist plot boxplot
- 31. Leetcode 82. 删除排序链表中的重复元素 II (链表-双指针)
- tableau2020.2版本可视化数据分析 新功能介绍
- Linux疑难杂症解决方案100篇(八)-文本处理工具与bash的特性
- java 程序片段_20个非常有用的Java程序片段
- java 获取页面元素的位置_Selenium Java 页面元素定位2
- python前缀表达式求值_python数据结构与算法 11 后缀表达式求值
- 电力系统继电保护原理及仿真_电力系统继电保护(529页)