ElasticSearch如何先聚合后过滤?

DanierWei 发布于 2016/07/10 13:50
阅读 1K+
收藏 0
场景:按日期纬度一个数据报表,字段有date_str, shop_code, new_user_count, active_count。字段分别含义:日期(精确到日)、车商id、 新增用户、活跃用户数;
          先需先按照时间范围查询,车商id分组,new_user_count字段取sum。然后在聚合后过滤new_user_count字段sum结果>30的所有车商id,以及sum结果。

类似sql:select shop_code, sum(new_user_count) from A where date_str >= ? and date_str <= ? group by shop_code having sum(new_user_count) > 30;

ps:不知道es有没有实现先聚合然后过滤的功能。希望大神们能解惑,谢了。
加载中
1
K
Kalleeeee

我是柯,我来回答你的问题!!!

es有个后过滤器的概念:post_filter. post_filter作为top-level元素,对命中的结果进行过滤,是在做聚合后再筛选的。

详见  https://www.elastic.co/guide/cn/elasticsearch/guide/current/_post_filter.html

1
L
LeeAng

postFilter 希望可以解答你的问题。

相关文档:https://elasticsearch.cn/book/elasticsearch_definitive_guide_2.x/_post_filter.html

 

0
同西

我今天也碰到了这个问题,请问你是怎么解决的,我的sql语句类似于

select count(字段1)from xx表 where 字段2 between ? to ? group by 字段1;

0
kse-music
kse-music

过滤聚合就可以完成

0
swelltt
swelltt

顶,关注。。。。

0
smart152819
smart152819

夜行侠老师视频教学:es问题汇总
http://www.itjoin.org/
1、如何防止索引被删除(权限控制)
2、搜索的精准性控制
3、解决搜索中英文数字混合
4、搜索中in查询
5、安装问题
6、es源码内部是如何做到插件化扩展
7、统计时展示不全
8、搜索条件过多,内容过长报错
9、索引某一字段内容太大
10、自动补全设计
11、es的分布式如何实现RPC底层
12、es的分片机制
13、head插件的使用
14、es分片和副本级的是原理
15、如何做到只更新部分数据
16、数组在index中如何制定
17、es搜索结果窗口太大
18、group by里如何排序
19、es底层新增和删除索引的全过程
20、es底层检索的全过程

0
smart152819
smart152819

夜行侠老师视频教学:es问题汇总
http://www.itjoin.org/
1、如何防止索引被删除(权限控制)
2、搜索的精准性控制
3、解决搜索中英文数字混合
4、搜索中in查询
5、安装问题
6、es源码内部是如何做到插件化扩展
7、统计时展示不全
8、搜索条件过多,内容过长报错
9、索引某一字段内容太大
10、自动补全设计
11、es的分布式如何实现RPC底层
12、es的分片机制
13、head插件的使用
14、es分片和副本级的是原理
15、如何做到只更新部分数据
16、数组在index中如何制定
17、es搜索结果窗口太大
18、group by里如何排序
19、es底层新增和删除索引的全过程
20、es底层检索的全过程

返回顶部
顶部