gpt4 book ai didi

elasticsearch - 如何在Elasticsearch中过滤聚合结果?

转载 作者:行者123 更新时间:2023-12-03 02:15:04 25 4
gpt4 key购买 nike

我有两个字段的Elasticsearch索引“ session ”:

  "user_id" : {
"type" : "keyword"
},
"login_at" : {
"type" : "date"
}
每次用户登录时,都会使用user_id和当前时间戳创建一条新记录。
我想列出所有一周未登录的用户。我知道如何获取每个用户的上次登录时间:
GET sessions/_search
{
"size": 0,
"aggs": {
"user_aggs": {
"terms": {
"field": "user_id",
"order": {
"last_access": "asc"
}
},
"aggs": {
"last_access": {
"max": {
"field": "login_at"
}
}
}
}
}
}
上面的查询列出了所有用户及其上次登录时间。
如何将“last_access”字段过滤为小于now-7d的值?

最佳答案

好的,我能够解决这个问题。这是查询:

GET sessions/_search
{
"size": 0,
"aggs": {
"user_aggs": {
"terms": {
"field": "user_id",
"size": 1000,
"order": {
"last_access": "asc"
}
},
"aggs": {
"last_access": {
"max": {
"field": "login_at"
}
},
"users_filtered": {
"bucket_selector": {
"buckets_path": {
"key": "last_access"
},
"script": "params.key < a_timestamp"
}
}
}
}
}
}
必须从应用程序发送a_timestamp变量,但是可以。

关于elasticsearch - 如何在Elasticsearch中过滤聚合结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63765933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com