桶聚合可以基于字段值、时间间隔或数值范围进行分组。 常用类型: Terms:根据字段的值将文档分配到不同的桶中,常用于分析文本字段的不同取值及其分布情况。 Date Histogram:根据日期字段的值,将文档按时间间隔(如天、周、月等)分组到桶中,适用于时间序列数据的分析。 Range:根据定义的范围将文档分配到不同的桶中,...
例如,你可能希望查看销售量最高的10个产品,可以使用terms聚合以及其size和order参数来实现: 代码语言:JSON AI代码解释 GET /sales/_search{"size":0,"aggs":{"top_products":{"terms":{"field":"product_id","size":10,"order":{"_count":"desc"}}} 在这个例子中,top_products是一个terms聚合,用于按...
单值分析主要包括 min、max、avg、sum、cardinality,weight avg,value count weight avg 在计算平均数时会使用另外一个字段作为每个文档的权重,比如 score = 99 学生有 3 个,score = 85 的学生有 5 个,求平均分数,人数就是这里的 weight cardinality 类似于关系数据库中的 distinct count value count 统计某字段...
#对 Text 字段进行 terms 聚合查询POST employees/_search { "size": 0, "aggs": { "jobs": { "terms": { "field":"job" # job 是 text 类型 } } } }#对 Text 字段打开 fielddata,以支持 terms aggregationPUT employees/_mapping { "properties" : { "job":{ "type": "text", "fielddata"...
common_terms query common_terms query 是一种在不牺牲性能的情况下替代停用词提高搜索准确率和召回率的方案。 查询中的每个词项都有一定的代价,以搜索 “The brown fox” 为例,query 会被解析成三个词项 “the”“brown” 和“fox”,每个词项都会到索引中执行一次查询。很显然包含 “the” 的文档非常多,相比...
但是在实际操作中发现,6.7.1版本中,除了histogram 和 date_histogram,terms桶也可以用_key排序,如下图,是按照key的字母降序: 把desc改为asc之后返回如下图,变成了按照key的首字母升序排序: 另外《Elasticsearch 权威指南》中还提到一种内置排序类型_term,但是《Elasticsearch官方文档》中宣布该类型在6.0之后已经废弃,...
"max_errors":2, // 最多可以拼错的 Terms 数 "confidence":0, // 用来限制返回的结果数,只有相关性评分大于 confidence 才会返回,默认值是 1.0 "direct_generator":[{ "field":"body", "suggest_mode":"always" //和Term suggester一样,包括三种:missing,popular,always ...
示例:最大订单价格按类别和总体排序GET book_store_orders/_search{ "size":0, "aggs":{ "sale_by_category":{ "terms":{ "field":"category.keyword" }, "aggs":{ "max_order_price":{ "max":{ "field":"order_price" } } ...
基于elasticsearch 构建的业务中最常用的聚合查询就是 terms aggregation,它基于 term 粒度的词或数字值进行聚合,如果聚合字段类型是 text,会对一个一个的词根进行聚合,通常不会在 text 类型的字段上使用聚合,terms 聚合类似关系数据库中的 group by 查询。
Terms(词条聚合):按照字段值进行分组,统计每个分组的文档数量。 Sum(求和聚合):计算指定字段的总和。 Avg(平均值聚合):计算指定字段的平均值。 Min(最小值聚合):找出指定字段的最小值。 Max(最大值聚合):找出指定字段的最大值。 Stats(统计聚合):计算指定字段的统计信息,包括最小值、最大值、总和、平均值和...