Elasticsearch是更好的聚合

时间:2015-03-05 06:10:48

标签: elasticsearch aggregation

我需要运行一个聚合,即获取特定集合中的ID的一天的唯一ID。所以SQL查询就像

SELECT count (DISTICT my_field) FROM my_table WHERE time BETWEEN '2015-02-13 00:00:00' AND '2015-02-13 23:59:59' AND my_field IN (value1,value2,value3....value n)

我现在正在使用术语聚合,并计算存储桶的数量。但它导致了错误的计数,我将桶计数作为我在查询字符串中指定的“my_field”的值的数量。那么有没有更好的方法呢?

顺便说一句,我有超过4k的值需要检查一天。我的意思是在哪里条件。

1 个答案:

答案 0 :(得分:1)

您可以使用Cardinality Aggregation Filter Aggregation来获取所需内容。在过滤器聚合的过滤器部分中,对where子句进行编码并添加基数聚合以获取my_field字段的不同值的计数。