這是一種單值指標聚合,用於跟蹤並返回聚合文檔提取數值中的最小值。
這些值既可從文檔的特定數值字段提取,也可以通過腳本生成.
注意
min和max聚合會在數據的雙重表示(double representation)上操作.
因此,當在絕對值大於2 ^ 53的long上運行時,結果是近似的。
計算所有文檔的最小价格:
POST /sales/_search?size=0
{
"aggs" : {
"min_price" : { "min" : { "field" : "price" } }
}
}
響應:
{
...
"aggregations": {
"min_price": {
"value": 10.0
}
}
}
聚合名稱(即上面的min_price)也可作為返回檢索聚合結果的鍵.
Script
min聚合還可計算腳本的最小值。 以下示例會計算最低價格:
POST /sales/_search
{
"aggs" : {
"min_price" : {
"min" : {
"script" : {
"source" : "doc.price.value"
}
}
}
}
}
它使用的是不帶腳本參數的Painless腳本語言.
要使用存儲腳本,可使用如下語法:
POST /sales/_search
{
"aggs" : {
"min_price" : {
"min" : {
"script" : {
"id": "my_script",
"params": {
"field": "price"
}
}
}
}
}
}
Value Script
假設文檔中的價格單位是USD(美元),但我們想以EURO(歐元)來計算最小值(在這裡,我們假設費率為1.2).為此,我們可以使用值腳本來修改每個price值:
POST /sales/_search
{
"aggs" : {
"min_price_in_euros" : {
"min" : {
"field" : "price",
"script" : {
"source" : "_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的文檔放在同一個桶中.
全部指標聚合,請參考
單值指標聚合
多值指標聚合
地理位置相關聚合
可執行Map-Reduce計算的聚合
閱讀更多 Java源 的文章