Elasticsearch6.X 去重统计详解

  • Post author:
  • Post category:其他


1、题记

Elasticsearch有没有类似mysql的distinct的去重功能呢?

1)如何去重计数?

类似mysql: select distinct(count(1)) from my_table;

2)如何获取去重结果。

类似mysql:SELECT DISTINCT name,age FROM users;

2、需求

1)对ES的检索结果进行去重统计计数。

2)对ES的检索结果去重后显示。

3、分析

1)统计计数需要借助ES聚合功能结合cardinality实现。

2)去重显示结果有两种方式:

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

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

4、DSL源码

1)统计去重数目。

GET books/_search

{


“size”: 0,

“aggs”: {


“books_count”: {


“cardinality”: {


“field”: “name_keyword”

}

}

}

}

来源:

https://mp.weixin.qq.com/s/OuIxXmB8cI1hXkKL7tvLrA