当前位置:   article > 正文

ElasticSearch 实战:ES中如何进行日期(数值)范围查询_es 时间范围

es 时间范围

Elasticsearch中进行日期或数值范围查询,你可以使用range查询。以下是如何使用range查询进行日期和数值范围查询的示例:

日期范围查询:

GET /my_index/_search
{
  "query": {
    "range": {
      "post_date": { // 假设post_date是日期类型字段
        "gte": "2022-01-01", // 大于等于2022年1月1日
        "lte": "2022-12-31", // 小于等于2022年12月31日
        "format": "yyyy-MM-dd" // 如果日期不是标准的Unix毫秒时间戳,需指定日期格式
      }
    }
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

数值范围查询:

GET /my_index/_search
{
  "query": {
    "range": {
      "price": { // 假设price是数值类型字段
        "gte": 100, // 大于等于100
        "lte": 500, // 小于等于500
        "boost": 2 // 可选,提升查询相关性得分
      }
    }
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

在上述例子中,gte 是 “greater than or equal to” 的缩写,lte 是 “less than or equal to” 的缩写。你还可以使用 gt(大于)和 lt(小于)代替 gtelte 来进行开放区间查询。

如果索引中的日期是以字符串形式存储并且有特定的日期格式,你需要在查询中指定相应的格式。如果没有指定,Elasticsearch会尝试使用默认的日期格式解析输入的日期字符串。

对于数值类型的字段,Elasticsearch会直接比较数值大小,无需指定格式。同时,boost 参数可以用来提高该查询在综合评分中的比重,意味着在同等条件下,落在指定价格范围内的商品在搜索结果中的排名将更高。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/633464
推荐阅读
相关标签
  

闽ICP备14008679号