当前位置:   article > 正文

(九)elasticsearch之分组去重(collapse)_elasticsearch collapse

elasticsearch collapse

一、背景介绍

问题一:如何对elasticsearch的检索结果进行去重统计计数。类似mysql 的 select count(*) from a group by b。

问题二:如何对elasticsearch的检索结果去重后显示。类似mysql 的select distint(“name”) from a group by b。

二、分析

问题一:

​ 统计计数需要借助elasticsearch聚合功能结合cardinality实现。

问题二:

​ 方式一:使用字段聚合+top_hots聚合方式。

​ 方式二:使用collapse折叠功能。

三、DSL 实例

问题一:

// 统计去重数目
GET user/_search
{
   
    "size":0,
    "aggs" : {
   
        "name_count" : {
   
            "cardinality" : {
   
            	"field" : "name"
            }
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

问题二:

方式一:top_hits 聚合

GET user/_search
{
   
    "query": {
   
        "match_all": {
   
            
        }
    },
    "aggs": {
   
        "type": {
   
            "terms": {
   
                "field": "name",
                "size"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/777428
推荐阅读
相关标签
  

闽ICP备14008679号