不要急,总有办法的

假设存在user字段记录用户账号、time字段记录用户登陆时间,如何确定一个月内,哪些用户曾在凌晨两点至四点登陆过?

Elasticsearch | 作者 liyh122 | 发布于2018年06月04日 | 阅读数:2203

系统提示:这个人太懒了,什么问题描述都没有写!

已邀请:

strglee

赞同来自: liyh122

不知道用户每次登录时间是不是记录下来了 还是time字段只保存了最后的登录时间 
 
如果记录下来了 用户又不是很多 可以这样查
{
"query": {
"bool": {
"filter": [
{
"range": {
"time": {
"gte": "now-30d/d"
}
}
},
{
"script": {
"script": {
"source": "doc.time.date.getHourOfDay() <=4 && doc.time.date.getHourOfDay() >=2",
"lang": "painless"
}
}
}
]
}
},
"aggs": {
"user_ids": {
"terms": {
"field": "user_id"
}
}
},
"size": 0
}

如果数据量特别大,只能把时间单独存一个字段 然后再查询
 

liyh122

赞同来自:

每次登录的时间都记录下来了,您的方案可以解决我的问题,非常感谢。
 
再请教一下,您最后说的数据量特别大时把时间单独存一个字段再查询是指什么,谢谢~

要回复问题请先登录注册