此處kibana和elasticsearch版本較老,更多請直接參考官網。
需要其他聚合操作時,可以通過advanced -> JSON input來填寫處理腳本,ElasticSearch2.x支持的腳本script.lang類型如下:
默認built-in的支持groovy、expression、mustache, 其他的需要單獨安裝並啓用插件。(此外lang還可取值native,對於複雜操作可以自定義插件實現並安裝,插件編寫語言爲Java)
- expression 簡單表達式, 簡單的加減乘除等操作可以直接使用該語言(language)類型:
{
"script": {
"lang": "expression",
"inline": "doc['views'] + 100"
}
}
或者
{
"script": "doc['views'] + 10",
"lang": "expression"
}
doc爲內置對象,代表es中文檔對象引用,doc['字段名'] 獲取字段值,如果字段不是簡單的基本類型,如date類型則還可以doc['date1'].getYear(),更多參考官網。上面的腳本表示將views加100返回。
- groovy類型,該類型自1.4.3默認沒啓用,需要啓用才能使用
{
"script": {
"inline": "doc['views'].value + val",
"lang": "groovy",
"params": { "val": 3 }
}
}
- mustache類型,模板查詢語言,默認elasticSearch的template採用該語言
處於安全考慮,腳本需要安裝到es腳本目錄,通過腳本名稱調用。
新版(7.5)
{
"script":"doc['system.cpu.iowait.pct'].value * 100"
}
參考: