ElastichSearchelasticsearch玩转大数据

六、Elasticsearch基于range filter进行范

2017-07-15  本文已影响92人  编程界的小学生

1、搜索浏览量在30~60之间的帖子

数据准备

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} }

SQL:

select * from tab where view_cnt >=30 and view_cnt < 60

ES:

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

gte:大于等于
gt:大于
lte:小于等于
lt:小于

2、搜索发帖日期在最近一个月的帖子

GET /forum/article/_search
{
  "query": {
    "constant_score": {
      "filter": {
        "range": {
          "postData": {
            "gte": "now-30d"
          }
        }
      }
    }
  }
}

3、梳理一下学到的知识点
(1)range,sql中的between,或者是>=1,<=1
(2)range做范围过滤

若有兴趣,欢迎来加入群,【Java初学者学习交流群】:458430385,此群有Java开发人员、UI设计人员和前端工程师。有问必答,共同探讨学习,一起进步!
欢迎关注我的微信公众号【Java码农社区】,会定时推送各种干货:


qrcode_for_gh_577b64e73701_258.jpg
上一篇下一篇

猜你喜欢

热点阅读