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

這是一種多值指標聚合,用於對聚合文檔提取數值進行統計.

這些值即可從文檔中的特定數值字段提取,也可通過提供的腳本生成.

extended_stats聚合是stats 聚合的擴展版本,除了stats 聚合的基本統計信息外,extended_stats還會返回sum_of_squares(平方和), variance(方差), std_deviation(標準差)和std_deviation_bounds(標準差界限)等統計信息.

假設數據由學生考試成績(0到100)組成

GET /exams/_search

{

"size": 0,

"aggs" : {

"grades_stats" : { "extended_stats" : { "field" : "grade" } }

}

}

上述聚合會對所有文檔的成績進行統計.

聚合類型是extended_stats,field定義了參與統計的數值字段.

上述聚合返回如下結果:

{

...

"aggregations": {

"grades_stats": {

"count": 2,

"min": 50.0,

"max": 100.0,

"avg": 75.0,

"sum": 150.0,

"sum_of_squares": 12500.0,

"variance": 625.0,

"std_deviation": 25.0,

"std_deviation_bounds": {

"upper": 125.0,

"lower": 25.0

}

}

}

}

聚合名稱(上面的Grades_Stats)也可用作返回響應中的聚合結果檢索鍵.

Standard Deviation Bounds(標準偏差界限)

默認情況下,extended_stats指標會返回一個名為std_deviation_bounds的對象,該對象提供一個與均值正負兩個標準差的間隔。這是觀察數據差異的有用方法。

如果需要不同的邊界,例如三個標準偏差,可以在請求中設置Sigma:

GET /exams/_search

{

"size": 0,

"aggs" : {

"grades_stats" : {

"extended_stats" : {

"field" : "grade",

"sigma" : 3 #1

}

}

}

}

1.sigma控制應顯示多少文化與平均值標準偏差+/-

sigma只能是非負的double,例如1.5。 值0有效,但只返回上限和下限的平均值.

注意

Standard Deviation and Bounds require normality

默認會顯示標準偏差及其邊界,但這並不適用於所有數據集。數據只在正常分佈的情況下,指標才有意義。 標準偏差背後的統計數據假設是數據是正態分佈的,因此如果數據嚴重偏向左或右,則返回的值將會產生誤導。

Script

可基於腳本來計算成績統計信息:

GET /exams/_search

{

"size": 0,

"aggs" : {

"grades_stats" : {

"extended_stats" : {

"script" : {

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

"lang" : "painless"

}

}

}

}

}

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

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

GET /exams/_search

{

"size": 0,

"aggs" : {

"grades_stats" : {

"extended_stats" : {

"script" : {

"id": "my_script",

"params": {

"field": "grade"

}

}

}

}

}

}

Value Script

事實證明,考試難度高於學生水平,需要進行等級校正,為此可使用值腳本來獲取新的統計信息:

GET /exams/_search

{

"size": 0,

"aggs" : {

"grades_stats" : {

"extended_stats" : {

"field" : "grade",

"script" : {

"lang" : "painless",

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

"params" : {

"correction" : 1.2

}

}

}

}

}

}

Missing value

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

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

GET /exams/_search

{

"size": 0,

"aggs" : {

"grades_stats" : {

"extended_stats" : {

"field" : "grade",

"missing": 0 #1

}

}

}

}

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

全部指標聚合,請參考

單值指標聚合

多值指標聚合

地理位置相關聚合

可執行Map-Reduce計算的聚合


分享到:


相關文章: