我想在一个时间范围内找到一个术语的所有不同值。
示例数据:
[
{
'a': 123,
'b': 456,
'user': 'bob',
},
{
...
'user': 'sally',
...
},
{
...
'user': 'bob',
...
},
{
'x': 2,
'y': 3,
}
]
在这种情况下,我想查找user
的所有不同值。
请注意,有些user
会出现在多个记录中,并非所有记录都有user
。
另外,我的要求是返回的user
列表必须是全面的(即如果存在具有某个user
的记录,那么user
必须出现在结果清单。)
每个user
的出现次数也不错,但不是必需的。
我考虑过Cardinality Aggregations,但我担心“近似”问题。结果的性质。我需要一份user
s。
我怎样才能在elasticsearch中做到这一点?
答案 0 :(得分:1)
如评论terms aggregation中所述,您正在寻找。仅当您查询N
最常见的术语并且数据在多个分片中分割时,结果才是近似值。
您可以将size
设置为零,以获得“无限制”(Integer.MAX_VALUE
)结果。