最近业务遇到一个问题:
假设我的ES里满足条件的数据有:
①goodsId: 1 , unitId:1 ;
②goodsId:1,unitId:2 ;
③goodsId:2 ,unitId:2;
④goodsId:3,unitId:3
四条数据。
我期望查询结果为:对于相同的goodsId只查出一条,即最终结果是 ① ③ ④ (或者 ②③④也可以)
并且支持分页,查出来的total是3而不是4(因为①②被算作一条)
不知道有没有方法可以解决啊
假设我的ES里满足条件的数据有:
①goodsId: 1 , unitId:1 ;
②goodsId:1,unitId:2 ;
③goodsId:2 ,unitId:2;
④goodsId:3,unitId:3
四条数据。
我期望查询结果为:对于相同的goodsId只查出一条,即最终结果是 ① ③ ④ (或者 ②③④也可以)
并且支持分页,查出来的total是3而不是4(因为①②被算作一条)
不知道有没有方法可以解决啊
2 个回复
superman
赞同来自:
比如:
POST /sales/_search?size=0 { "aggs": { "top_tags": { "terms": { "field": "type", "size": 3 }, "aggs": { "top_sales_hits": { "top_hits": { "sort": [ { "date": { "order": "desc" } } ], "_source": { "includes": [ "date", "price" ] }, "size" : 1 } } } } } }
elasticStack - 90后it大数据男
赞同来自:
2.可以使用聚合terms