Elasticsearch 范围查询

您所在的位置:网站首页 es查询时间段之间的内容不一致 Elasticsearch 范围查询

Elasticsearch 范围查询

2023-07-20 10:56| 来源: 网络整理| 查看: 265

Elasticsearch 范围查询 范围查询(range query) 范围查询用于匹配某些字段的字段值位于特定范围内的文档。Lucene查询的类型依赖于字段的类型,对于字符串字段,是TermRangeQuery,而对于数字/日期字段,查询是NumericRangeQuery。 GET _search { "query": { "range": { "age": { "gte": 25, "lte": 30 } } } } note:查询age字段大于等于25小于等于30的文档。 范围查询接收以下参数: gte:大于等于 gt:大于 lte:小于等于 lt:小于 boost:设置查询的推动值(boost),默认为1.0 日期字段的范围 当范围查询运行在日期类型的字段上时,可以通过日期数学指定范围。 GET _search { "query": { "range" : { "date" : { "gte" : "now-1d/d", "lt" : "now/d" } } } } 日期数学与舍入 当使用日期数学将日期舍入到最近的天、月、小时等时,舍入后的日期依赖于范围的边界是否被包含。 向上舍入移动到舍入范围的最后一毫秒,向下舍入移动到舍入范围的第一毫秒。 gt:大于舍入的日期,2014-11-18||/M变为2014-11-30T23:59:59.999,即不包括整个月。 gte:大于等于舍入的日期,2014-11-18||/M变为2014-11-01,即包括整个月。 lt:小于舍入的日期,204-11-18||/M变为2014-11-01,即不包括整个月。 lte:小于等于舍入的日期,2014-11-18||/M变为2014-11-30T23:59:59.999,即包含整个月。 范围查询中的日期格式 默认使用设置在日期字段中的format参数解析格式化日期,但是,此参数可以通过在范围查询中设置format参数来进行覆盖。 GET _search { "query": { "range" : { "born" : { "gte": "01/01/2012", "lte": "2013", "format": "dd/MM/yyyy||yyyy" } } } } 范围查询中的时区 通过在日期值中指定时区或使用time_zone参数指定时区,可以转换日期时区。 GET _search { "query": { "range" : { "timestamp" : { "gte": "2015-01-01 00:00:00", "lte": "now", "time_zone": "+01:00" } } } } note:gte参数的日期值将会被转化为2014-12-31T23:00:00 UTC note:now不会被time_zone参数影响(日期必须存储为UTC)

 

 

范围搜索案例 2.1 制造数据 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} } 复制代码 2.2 搜索浏览量在30~60之间的帖子 GET /forum/article/_search { "query": { "constant_score": { "filter": { "range": { "view_cnt": { "gt": 30, "lt": 60 } } } } } } 复制代码 2.3 搜索发帖日期在最近1个月的帖子 POST /forum/article/_bulk { "index": { "_id": 5 }} { "articleID" : "DHJK-B-1395-#Ky5", "userID" : 3, "hidden": false, "postDate": "2017-03-01", "tag": ["elasticsearch"], "tag_cnt": 1, "view_cnt": 10 } GET /forum/article/_search { "query": { "constant_score": { "filter": { "range": { "postDate": { "gt": "2017-03-10||-30d" } } } } } } GET /forum/article/_search { "query": { "constant_score": { "filter": { "range": { "postDate": { "gt": "now-30d" } } } } } }

 

posted on 2020-05-19 14:58  ExplorerMan  阅读(5253)  评论(0)  编辑  收藏  举报



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3