我需要运行一个聚合,以获取特定集合中的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的值需要一天进行检查。我的意思是在哪里条件。

最佳答案

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

关于elasticsearch - Elasticsearch哪个是更好的聚合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28871175/

10-15 23:16