ES中聚合查询主要分为以下几种:
- 最大值(max)聚合:返回指定字段的最大值。
- 最小值(min)聚合:返回指定字段的最小值。
- 求和(sum)聚合:返回指定字段的总和。
- 平均值(avg)聚合:返回指定字段的平均值。
- 值计数(value_count)聚合:返回满足指定条件的文档数量。
- 范围(range)聚合:根据指定的范围分布返回文档数量。
- 日期范围(date_range)聚合:根据日期范围分布返回文档数量。
- 拟合(percentile)聚合:返回指定百分位数的文档值。
- 基数(cardinality)聚合:返回去重后的指定字段的文档数量。
聚合查询的三要素是:
- 聚合类型:如max、min、sum、avg等。
- 聚合字段:需要聚合的字段。
- 聚合别名:结果中的键名,一般为该聚合起了一个含义明确的名字。
对数据类型有以下要求:
- 求和、平均值、最大/小值聚合要求字段为数值类型(long、integer、float、double等)。
- 基数聚合要求字段为Keyword类型或 complicate类型(nested object)。
- 范围聚合要求字段为数值类型或日期类型。
- 值计数聚合没有要求,可以对任意类型的数据进行聚合计数。
项目中,你是如何实现从mysql中的数据同步到es的?
使用MQ消息队列
什么是脑裂?es是怎么解决的?
查询时自定义分词器又多种参与查询 解决查询时只指定一个分词器