按汇总结果过滤查询

时间:2018-10-24 09:14:53

标签: elasticsearch nest

我拥有当前数据集

DATA SET
所以我写了一个查询,在其中我将术语搜索放在Code = 110上。我需要做的是根据Rank排序的Phone进行重复数据删除。 在SQL中,将使用row_number() over (partition by Phone order by Rank) as Dedup进行cte,然后获取所有记录where Dedup = 1。结果应如下所示:

wanted result

现在我尝试用过滤器聚合编写一个弹性查询,但是我需要在查询中指定过滤器项,电话:

"aggs" : {
    "phoneDedup" : {
        "filter" : { "term": { "phone": "????" } },
        "aggs" : {
            "min_rank" : { "min" : { "field" : "rank" } }
        }
    }
}

我需要能够提取数据,分页。完整的数据集有7-8百万行。 我需要的是翻译为该SQL查询

with cte as (
select 
  Row_Nr,Code,Phone,Rank
  ,row_number() over (partition by Phone order by Rank) as row
   from TABLE_INDEX where Code='110'
) 
select * from cte where row =1

有什么想法吗?

0 个答案:

没有答案