格式:

    "range": {      "FIELD": {        "gte": 10,        "lte": 20      }

类似于SQL中的between、大于等于、小于等于之类的范围筛选

准备数据:

POST /forum/_bulk{ "index": { "_id": 1 }}{ "articleID" : "XHDK-A-1293-#fJ3", "userID" : 1, "hidden": false, "postDate": "2017-01-01" }{ "index": { "_id": 2 }}{ "articleID" : "KDKE-B-9947-#kL5", "userID" : 1, "hidden": false, "postDate": "2017-01-02" }{ "index": { "_id": 3 }}{ "articleID" : "JODL-X-1937-#pV7", "userID" : 2, "hidden": false, "postDate": "2017-01-01" }{ "index": { "_id": 4 }}{ "articleID" : "QQPX-R-3956-#aD8", "userID" : 2, "hidden": true, "postDate": "2017-01-02" }

1、为帖子数据增加浏览量的字段

POST /forum/_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/_search{  "query": {    "constant_score": {      "filter": {        "range": {          "view_cnt": {            "gte": 30,            "lte": 60          }        }      }    }  }}
{  "took" : 561,  "timed_out" : false,  "_shards" : {    "total" : 1,    "successful" : 1,    "skipped" : 0,    "failed" : 0  },  "hits" : {    "total" : {      "value" : 2,      "relation" : "eq"    },    "max_score" : 1.0,    "hits" : [      {        "_index" : "forum",        "_type" : "_doc",        "_id" : "1",        "_score" : 1.0,        "_source" : {          "articleID" : "XHDK-A-1293-#fJ3",          "userID" : 1,          "hidden" : false,          "postDate" : "2017-01-01",          "tag" : [            "java",            "hadoop"          ],          "tag_cnt" : 2,          "view_cnt" : 30        }      },      {        "_index" : "forum",        "_type" : "_doc",        "_id" : "2",        "_score" : 1.0,        "_source" : {          "articleID" : "KDKE-B-9947-#kL5",          "userID" : 1,          "hidden" : false,          "postDate" : "2017-01-02",          "tag" : [            "java"          ],          "tag_cnt" : 1,          "view_cnt" : 50        }      }    ]  }}

3、搜索发帖日期在最近1个月的帖子

POST /forum/_bulk{ "index": { "_id": 5 }}{ "articleID" : "DHJK-B-1395-#Ky5", "userID" : 3, "hidden": false, "postDate": "2019-05-30", "tag": ["elasticsearch"], "tag_cnt": 1, "view_cnt": 10 }

准备一条数据,之前时间比较老了

GET /forum/_search{  "query": {    "constant_score": {      "filter": {        "range": {          "postDate": {            "gte": "now-30d"          }        }      }    }  }}
{  "took" : 369,  "timed_out" : false,  "_shards" : {    "total" : 1,    "successful" : 1,    "skipped" : 0,    "failed" : 0  },  "hits" : {    "total" : {      "value" : 1,      "relation" : "eq"    },    "max_score" : 1.0,    "hits" : [      {        "_index" : "forum",        "_type" : "_doc",        "_id" : "5",        "_score" : 1.0,        "_source" : {          "articleID" : "DHJK-B-1395-#Ky5",          "userID" : 3,          "hidden" : false,          "postDate" : "2019-05-30",          "tag" : [            "elasticsearch"          ],          "tag_cnt" : 1,          "view_cnt" : 10        }      }    ]  }}