此处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"
}
参考: