ES 核心--结构化搜索 基于range filter 来进行范围过滤

本文介绍了如何在ES中利用range filter进行范围过滤,通过示例展示了如何搜索浏览量在30到60之间的文章及指定日期范围内的文章,类似于SQL的between操作。

range:相当于SQL中的between,用来做范围过滤

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、搜索流量量在30 到 60之间的文章

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

结果:
{
  "took" : 3,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : 1,
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "forum",
        "_type" : "article",
        "_id" : "2",
        "_score" : 1.0,
        "_source" : {
          "articleId" : "XHEX-A-3422-#f234",
          "userId" : 2,
          "hidde
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值