不为失败找理由,要为成功找方法。

elasticsearch 交集求和去重计数改如何查询呢?

Elasticsearch | 作者 对你无可奈何 | 发布于2019年02月13日 | 阅读数:3326

是这样的一个需求:求活跃用户留存。用户id是唯一的,索引是按照月的有一个日期标识day.比如求1号的活跃用户在2号的留存数量或者2号活跃留存占一号活跃用户的比例。在这个回答:https://elasticsearch.cn/question/3415找到了列出交集用户的查询方式。可以列出交集用户,我改如何直接计数,求和或者算比例呢
12.png 23.png
已邀请:

rochy - rochy_he

赞同来自: 对你无可奈何

把 reduce_script 改成下面的试试:
 
def a=new HashSet(),b=new HashSet();params._aggs.forEach(item->{a.addAll(item.a);b.addAll(item.b);});def aLen=a.size();a.retainAll(b);return a.size()*100.0/aLen;

要回复问题请先登录注册