ES6.0.0官方參考指南翻譯~指標聚合~Stats Aggregation

Stats Aggregation

這是一種多值指標聚合,用於計算聚合文檔提取值的統計數據。這些值既可通過文檔的數字字段提取,也可通過腳本來生成。

該聚合返回的統計信息包括: min,max,sum,count,avg.

假設文檔由學生的考試成績(0~100)所組成:

POST /exams/_search?size=0

{

"aggs" : {

"grades_stats" : { "stats" : { "field" : "grade" } }

}

}

上面的聚合會計算所有文檔的成績統計數據。聚合類型是stats,聚合字段是grade.

上述聚合會返回如下結果:

{

...

"aggregations": {

"grades_stats": {

"count": 2,

"min": 50.0,

"max": 100.0,

"avg": 75.0,

"sum": 150.0

}

}

}

聚合名稱(即上面的grades_stats)可作為檢索聚合結果的key.

Script

也可基於腳本來統計成績數據:

POST /exams/_search?size=0

{

"aggs" : {

"grades_stats" : {

"stats" : {

"script" : {

"lang": "painless",

"source": "doc['grade'].value"

}

}

}

}

}

這會使用painless腳本語言來將script參數解析為內聯腳本(不帶腳本參數).

可通過如下語法來使用存儲腳本:

POST /exams/_search?size=0

{

"aggs" : {

"grades_stats" : {

"stats" : {

"script" : {

"id": "my_script",

"params" : {

"field" : "grade"

}

}

}

}

}

}

Value Script

事實證明,考試難度高於學生水平,需要進行等級校正。

我們可以使用值腳本來獲取新的統計信息:

POST /exams/_search?size=0

{

"aggs" : {

"grades_stats" : {

"stats" : {

"field" : "grade",

"script" : {

"lang": "painless",

"source": "_value * params.correction",

"params" : {

"correction" : 1.2

}

}

}

}

}

}

Missing value

missing 參數用於定義如何處理文檔中的缺失值.

默認,它會忽略缺失值,但也可以將其視為有值字段.

POST /exams/_search?size=0

{

"aggs" : {

"grades_stats" : {

"stats" : {

"field" : "grade",

"missing": 0 #1

}

}

}

}

1.對於無值的grade字段,其所屬文檔會與值為0的文檔放在同一個桶內。

全部指標聚合,請參考

單值指標聚合

多值指標聚合

地理位置相關聚合

可執行Map-Reduce計算的聚合


分享到:


相關文章: