E
E
Elasticsearch 高手之路
Search…
E
E
Elasticsearch 高手之路
Introduction
First Chapter
1.ElasticSearch 5.x 安装
2.基础学前班
3.基础
3.1.配置文件
3.2.Mapping
3.3. Analysis(分析)
3.4. APIs
3.5.Query DSL(DSL方式查询)
3.6.Aggregations(聚合分析)
3.6.1.量度聚合(Metric Aggregations)
平均值聚合(Avg Aggregation)
基数聚合(Cardinality Aggregation)
扩展统计聚合( Extended Stats Aggregation)
地理边界聚合(Geo Bounds Aggregation)
地理重心聚合(Geo Centroid Aggregation)
最大值聚合(Max Aggregation)
最小值聚合(Min Aggregation)
Percentiles Aggregation
Percentile Ranks Aggregation
Scripted Metric Aggregation
Stats Aggregation
总和聚合(Sum Aggregation)
Top hits Aggregation
Value Count Aggregation
3.6.2.桶聚合(Bucket Aggregations)
3.6.3.管道聚合(Pipeline Aggregations)
3.6.4.矩阵聚合(Matrix Aggregations)
3.6.5.缓存频繁聚合(Caching heavy aggregations)
3.6.6.仅返回需要聚合的结果(Returning only aggregation results)
3.6.7.聚合元数据(Aggregation Metadata)
3.6.8.返回聚合的类型(Returning the type of the aggregation)
Glossary of terms (词汇表)
未完成的任务
4.基础补充总结
原理
实战
PHP API
资料
笔记
Powered By
GitBook
最小值聚合(Min Aggregation)
最小值聚合是一个单值度量聚合,用来记录和返回从聚合的文档中提取出的数字型值中的最小值。这些值可以从文档中的特定数字类型的字段提取,也可以通过脚本生成。
提示:最小值聚合和最大值聚合以数据的双重表示方式进行操作。 因此,如果在绝对值大于2 ^ 53的long类型的字段上运行最大值聚合或者最小值聚合,结果可能是近似值。
计算所有文档中价格最低的文档:
POST /sales/_search?size=0
{
"aggs" : {
"min_price" : { "min" : { "field" : "price" } }
}
}
返回值:
{
...
"aggregations": {
"min_price": {
"value": 10.0
}
}
}
可以看出,可以以聚合的名称(min_price)作为关键字从返回的结果中查询出聚合的结果。
script
最小值聚合也可以通过脚本来计算,下面是一个计算最低价格的脚本的例子:
POST /sales/_search
{
"aggs" : {
"min_price" : {
"min" : {
"script" : {
"inline" : "doc.price.value"
}
}
}
}
}
这会使用
Painless
脚本语言,而且这个脚本没有参数。如果想使用脚本文件,用下面的这种方式:
POST /sales/_search
{
"aggs" : {
"min_price" : {
"min" : {
"script" : {
"file": "my_script",
"params": {
"field": "price"
}
}
}
}
}
}
提示:索引脚本只需要将file参数替换为id参数。
Value Script
比如index中的文档里的价格是以美元为单位的,但是我们现在想获得欧元的最小值(在这里假设汇率是1.2)。我们可以使用value script在聚合前来来实现每个值的汇率转化:
POST /sales/_search
{
"aggs" : {
"min_price_in_euros" : {
"min" : {
"field" : "price",
"script" : {
"inline" : "_value * params.conversion_rate",
"params" : {
"conversion_rate" : 1.2
}
}
}
}
}
}
Missing Value
missing参数定义了如何处理缺少值的文档。 默认情况下如果没有指定的字段,这种文档将被忽略,但也可以认为它们具有指定的值。
POST /sales/_search
{
"aggs" : {
"grade_min" : {
"min" : {
"field" : "grade",
"missing": 10 # 1
}
}
}
}
1
文档中如果没有grade这个字段,则认为该字段的值是10。
Previous
最大值聚合(Max Aggregation)
Next
Percentiles Aggregation
Last modified
3yr ago
Copy link
Outline
script
Value Script
Missing Value