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

用於對聚合文檔提取值進行求和的單值指標聚合。

這些值既可通過文檔的數字字段提取,也可通過腳本來生成。

假設數據由銷售記錄所組成,那麼我們可使用下面的請求來計算所有帽子的總銷售價格:

POST /sales/_search?size=0

{

"query" : {

"constant_score" : {

"filter" : {

"match" : { "type" : "hat" }

}

}

},

"aggs" : {

"hat_prices" : { "sum" : { "field" : "price" } }

}

}

響應為:

{

...

"aggregations": {

"hat_prices": {

"value": 450.0

}

}

}

聚合名稱(即上面的intraday_return)也可作為檢索聚合結果的key。

Script

也可通過腳本來獲取總銷售價:

POST /sales/_search?size=0

{

"query" : {

"constant_score" : {

"filter" : {

"match" : { "type" : "hat" }

}

}

},

"aggs" : {

"hat_prices" : {

"sum" : {

"script" : {

"source": "doc.price.value"

}

}

}

}

}

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

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

POST /sales/_search?size=0

{

"query" : {

"constant_score" : {

"filter" : {

"match" : { "type" : "hat" }

}

}

},

"aggs" : {

"hat_prices" : {

"sum" : {

"script" : {

"id": "my_script",

"params" : {

"field" : "price"

}

}

}

}

}

}

Value Script

在腳本中,也可使用_value來訪問字段值.例如,下面的請求會對所有帽子價格的平方進行求和:

POST /sales/_search?size=0

{

"query" : {

"constant_score" : {

"filter" : {

"match" : { "type" : "hat" }

}

}

},

"aggs" : {

"square_hats" : {

"sum" : {

"field" : "price",

"script" : {

"source": "_value * _value"

}

}

}

}

}

Missing value

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

默認情況下,缺失值文檔會被忽略。若不想忽略,則可以使用missing參數定義缺失值。

例如,下面的聚合請求會將price字段的缺失值視為100.

POST /sales/_search?size=0

{

"query" : {

"constant_score" : {

"filter" : {

"match" : { "type" : "hat" }

}

}

},

"aggs" : {

"hat_prices" : {

"sum" : {

"field" : "price",

"missing": 100 #1

}

}

}

}

1.price字段中無值的文檔會與值為100的文檔放在同一個桶中.

全部指標聚合,請參考

單值指標聚合

多值指標聚合

地理位置相關聚合

可執行Map-Reduce計算的聚合


分享到:


相關文章: