日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2025/3/21 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 白话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来进行范围过滤的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。