要不要也来分享分享一下啊

elasticSearch Java API 怎么将查询出来的数据类似sql 一样的distinct 去重某个字段

Elasticsearch | 作者 RZYang | 发布于2016年08月01日 | 阅读数:7744

elasticSearch Java API 怎么将查询出来的数据类似sql 一样的distinct 去重某个字段
 
我需要将查询出来的数据先group by 一下, 然后count(distinct()) 
 
类似于下面的操作

 例如 有个一个type1 数据结构如下
     省份,  是否结婚,  姓名
     湖南     1             王五
     湖南     0             王五
     湖南     1             王五
     湖南     1             张三
需求:
对姓名去重然后求count。 但是要用省份和,是否结婚分组, 最后面再求和count 的数据 
如果用sql 去做的话 我们可以这样写
select sum(t1.num) from (
   select  省份,是否结婚 , count(distinct(姓名)) as num   from type1 group 省份, 是否结婚) t1
不知道 用Java API 操作ES怎么做出来
已邀请:

joeywen

赞同来自:

用sub-aggregation

要回复问题请先登录注册