elasticsearch - 不同值的综合列表

时间:2016-01-07 21:02:31

标签: elasticsearch

我想在一个时间范围内找到一个术语的所有不同值。

示例数据:

[
  {
    '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中做到这一点?

1 个答案:

答案 0 :(得分:1)

如评论terms aggregation中所述,您正在寻找。仅当您查询N最常见的术语并且数据在多个分片中分割时,结果才是近似值。

您可以将size设置为零,以获得“无限制”(Integer.MAX_VALUE)结果。