身安不如心安,屋宽不如心宽 。

请问ES如何同时按照日期(年月日)及时间(时分秒)两个范围来查询(过滤)?

Elasticsearch | 作者 chunzhenzyd | 发布于2018年06月19日 | 阅读数:11188

比如,我要查询(过滤)2018-06-01 ~ 2018-07-03, 同时时间区间落在 10:20:00 ~ 14:00:00
请帮忙分析如何解决这个问题?
已邀请:

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自: leishuanghe

 
POST doc_index/_search
{
"query": {
"bool":{
"must":[
{
"range": {
"op_time": {
"gte": "2018-06-01",
"lte": "2018-07-03"
}
}
},
{
"script" : {
"script" : {
"source": "doc['op_time'].getDate().getHourOfDay() > 10 && doc['op_time'].getDate().getHourOfDay() < 14",
"lang": "painless"

}
}
}
]
}
}
}

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自:

range结合script聚合实现

chunzhenzyd

赞同来自:

比如_source里有一个the_date字段,怎么写查询语句呢?

要回复问题请先登录注册