我正在使用 ES 和 Ruby on Rails,我必须列出所有唯一用户,所以下面是我用来获取它的代码。
buckets['unique_users'] = {
filter: { match_all: {} },
aggregations: {
users_count: {
cardinality: {
field: :customer_email_key
}
}
}
}
以下是回复:
unique_users: {
doc_count: 134,
users_count: {
value: 125
}
}
}
这仅显示唯一用户的数量,但此查询不显示电子邮件列表,因此此查询中的问题在哪里。有人可以指导我吗?
========== New Edits ==========
现在我正在使用代码,它与用户列表一起工作正常,它很重要。
def buckets_for_unique_users(buckets, aggregations)
buckets['unique_users'] = {
filter: { match_all: {} },
aggregations: {
users_count: {
cardinality: {
field: :customer_email_key
}
},
details: {
terms: {
field: :customer_email_key,
size: 200
}
}
}
}
end
现在得到上面的代码响应是:
unique_users: {
doc_count: 134,
users_count: {
value: 125
},
details: {
doc_count_error_upper_bound: 0,
sum_other_doc_count: 0,
buckets: [
{
key: "example@gmail.com",
doc_count: 2
}
{....}
]
}
现在一切都很完美,但是响应中有些东西有点令人困惑,所以我必须删除它,即doc_count: 134因为我想保留users_count并删除doc_count。因此,为此我从方法中删除了过滤器:{ match_all: {} },然后出现错误Missing definition for aggregation [unique_users]