Kibana 6.2.1中使用JSON输入创建条件指标的脚本修复求助
修复Kibana 6.2.1中的字段值替换脚本
我来帮你搞定这个脚本问题!你原脚本的问题主要是不符合Elasticsearch Painless脚本的语法规范,咱们调整一下就能实现需求:当指标值小于0时显示0,否则显示原值。
正确的脚本写法
你可以用两种方式实现,选你觉得顺手的就行:
方式1:三元运算符(更简洁)
{"script": "def val = doc['<<fieldname>>'].value; return val < 0 ? 0 : val;" }
方式2:if-else语句(更直观)
{"script": "def val = doc['<<fieldname>>'].value; if (val < 0) { return 0; } else { return val; }" }
关键调整说明
- 去掉了原脚本里多余的
then关键字,Painless的if语句不需要这个 - 用
def定义变量存储字段值,让代码更清晰也避免重复调用doc['field'].value - 必须用
return来明确返回结果,原脚本缺少返回逻辑,这是核心问题 - 规范了大括号的使用,确保代码块结构正确
注意事项
- 记得把
<<fieldname>>替换成你实际要处理的字段名称 - 确保这个字段是数值类型(比如integer、float、double),如果是字符串类型需要先转换,不然会出现类型不匹配的错误
内容的提问来源于stack exchange,提问作者Subbu
相关产品推荐
相关产品推荐

