六、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