有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

简介

逻辑与数学函数,包含了与或非、大于小于等于、加减乘除取模的运算。写起来和我们在程序语言中稍有区别,如下图所示:



op_if 函数

函数定义

根据条件判断,返回相应的值。

语法描述

op_if(条件1,1,2)

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
condition
条件表达式
bool
-
-
data1
条件为 True 时,返回此参数值
string
-
-
data2
条件为 False 时,返回此参数值
string
-
-

示例

示例1 原始日志:
{"data": "abc"}
加工规则:
fields_set("result", op_if(True, v("data"), "false"))
加工结果:
{"result":"abc","data":"abc"}
示例2 原始日志:
{"data": "abc"}
加工规则:
fields_set("result", op_if(False, v("data"), "123"))
加工结果:
{"result":"123","data":"abc"}

op_and 函数

函数定义

对值进行 and 运算,均为 True 时,返回 True,否则返回 False。

语法描述

op_and(1,2, ...)

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
可变参列表
参与计算的参数或表达式
string
-
-

示例

示例1 原始日志:
{}
加工规则:
fields_set("result", op_and(True, False))
加工结果:
{"result":"false"}
示例2 原始日志:
{}
加工规则:
fields_set("result", op_and(1, 1))
加工结果:
{"result":"true"}
示例3 原始日志:
{"data":"false"}
加工规则:
fields_set("result", op_and(1, v("data")))
加工结果:
{"result":"false","data":"false"}

op_or 函数

函数定义

对值进行 or 运算,若存在参数值为 False 则返回 False,否则返回 True。

语法描述

op_or(1,2, ...)

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
可变参列表
参与计算的参数或表达式
string
-
-

示例

原始日志:
{}
加工规则:
fields_set("result", op_or(True, False))
加工结果:
{"result":"true"}

op_not 函数

函数定义

对值进行 not 运算。

语法描述

op_not()

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
data
任意类型的值
any
-
-

示例

示例1 原始日志:
{}
加工规则:
fields_set("result", op_not(True))
加工结果:
{"result":"false"}
示例2 原始日志:
{}
加工规则:
fields_set("result", op_not("True"))
加工结果:
{"result":"false"}

op_eq 函数

函数定义

对值进行比较,相等则返回 True。

语法描述

op_eq(1,2)

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
data1
数值类型的值或可转为数值的字符串
number
-
-
data2
数值类型的值或可转为数值的字符串
number
-
-

示例

示例1:判断字段 "Post" 和 "Get" 的值是否相等。 原始日志:
{"Post": "10", "Get": "11"}
加工规则:
fields_set("result", op_eq(v("Post"), v("Get")))
将结果保存到result。 加工结果:
{"result":"false","Post":"10","Get":"11"}
示例2:判断字段 "field1" 和 "field2" 的值是否相等。 原始日志:
{"field1": "1", "field2": "1"}
加工规则:
fields_set("result", op_eq(v("field1"), v("field2")))
加工结果:
{"result":"true","field1":"1","field2":"1"}

op_ge 函数

函数定义

对值进行比较,值1大于或等于值2时返回 True。

语法描述

op_ge(1,2)

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
data1
数值类型的值或可转为数值的字符串
number
-
-
data2
数值类型的值或可转为数值的字符串
number
-
-

示例

示例1 原始日志:
{"field1": "20", "field2": "9"}
加工规则:
fields_set("result", op_ge(v("field1"), v("field2")))
加工结果:
{"result":"true","field1":"20","field2":"9"}
示例2 原始日志:
{"field1": "2", "field2": "2"}
加工规则:
fields_set("result", op_ge(v("field1"), v("field2")))
加工结果:
{"result":"true","field1":"2","field2":"2"}

op_gt 函数

函数定义

对值进行比较,值1大于值2时返回 True。

语法描述

op_gt(1,2)

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
data1
数值类型的值或可转为数值的字符串
number
-
-
data2
数值类型的值或可转为数值的字符串
number
-
-

示例

原始日志:
{"field1": "20", "field2": "9"}
加工规则:
fields_set("result", op_ge(v("field1"), v("field2")))
加工结果:
{"result":"true","field1":"20","field2":"9"}

op_le 函数

函数定义

对值进行比较,值1小于或等于值2时返回 True。

语法描述

op_le(1,2)

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
data1
数值类型的值或可转为数值的字符串
number
-
-
data2
数值类型的值或可转为数值的字符串
number
-
-

示例

原始日志:
{"field1": "2", "field2": "2"}
加工规则:
fields_set("result", op_le(v("field1"), v("field2")))
加工结果:
{"result":"true","field1":"2","field2":"2"}

op_lt 函数

函数定义

对值进行比较,值1小于值2时返回 True。

语法描述

op_lt(1,2)

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
data1
数值类型的值或可转为数值的字符串
number
-
-
data2
数值类型的值或可转为数值的字符串
number
-
-

示例

原始日志:
{"field1": "2", "field2": "3"}
加工规则:
fields_set("result", op_lt(v("field1"), v("field2")))
加工结果:
{"result":"true","field1":"2","field2":"3"}

op_add 函数

函数定义

对值进行求和运算。

语法描述

op_add(1,2)

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
data1
数值类型的值或可转为数值的字符串
number
-
-
data2
数值类型的值或可转为数值的字符串
number
-
-

示例

原始日志:
{"field1": "1", "field2": "2"}
加工规则:
fields_set("result", op_add(v("field1"), v("field2")))
加工结果:
{"result":"3","field1":"1","field2":"2"}

op_sub 函数

函数定义

对值进行求差运算。

语法描述

op_sub(值1, 值2)

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
data1
数值类型的值或可转为数值的字符串
number
-
-
data2
数值类型的值或可转为数值的字符串
number
-
-

示例

原始日志:
{"field1": "1", "field2": "2"}
加工规则:
fields_set("result", op_sub(v("field1"), v("field2")))
加工结果:
{"result":"-1","field1":"1","field2":"2"}

op_mul 函数

函数定义

对值进行乘积运算。

语法描述

op_mul(1,2)

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
data1
数值类型的值或可转为数值的字符串
number
-
-
data2
数值类型的值或可转为数值的字符串
number
-
-

示例

原始日志:
{"field1": "1", "field2": "2"}
加工规则:
fields_set("result", op_mul(v("field1"), v("field2")))
加工结果:
{"result":"2","field1":"1","field2":"2"}

op_div 函数

函数定义

对值进行除法运算。

语法描述

op_div(1,2)

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
data1
数值类型的值或可转为数值的字符串
number
-
-
data2
数值类型的值或可转为数值的字符串
number
-
-

示例

示例1 原始日志:
{"field1": "1", "field2": "2"}
加工规则:
fields_set("result", op_div(v("field1"), v("field2")))
加工结果:
{"result":"0","field1":"1","field2":"2"}
示例2 原始日志:
{"field1": "1.0", "field2": "2"}
加工规则:
fields_set("result", op_div(v("field1"), v("field2")))
加工结果:
{"result":"0.5","field1":"1.0","field2":"2"}

op_sum 函数

函数定义

对多值累加求和。

语法描述

op_sum(1,2, ...)

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
可变参列表
数值类型的值或可转为数值的字符串
string
-
-

示例

原始日志:
{"field1": "1.0", "field2": "10"}
加工规则:
fields_set("result", op_sum(v("field1"), v("field2")))
加工结果:
{"result":"11.0","field1":"1.0","field2":"10"}

op_mod 函数

函数定义

对值进行模计算。

语法描述

op_mod(1,2)

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
data1
数值类型的值或可转为数值的字符串
number
-
-

示例

示例1 原始日志:
{
"field1": "3",
"field2": "2"
}
加工规则:
fields_set("result", op_mod(v("field1"), v("field2")))
加工结果:
{"field1":"3","field2":"2","result":"1"}
示例2 原始日志:
{"field1": "1.0", "field2": "5"}
加工规则:
fields_set("result", op_mod(v("field1"), v("field2")))
加工结果:
{"result":"1.0","field1":"1.0","field2":"5"}
示例3 原始日志:
{"field1": "6", "field2": "4"}
加工规则:
fields_set("result", op_mod(v("field1"), v("field2")))
加工结果:
{"result":"2","field1":"6","field2":"4"}

op_null 函数

函数定义

对值进行是否为 null 判断,是则返回 true,否则返回 false。

语法描述

op_null()

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
data
任意类型的值
any
-
-

示例

示例1 原始日志:
{}
加工规则:
fields_set("result", op_null("null"))
加工结果:
{"result":"true"}
示例2 原始日志:
{"data": null}
加工规则:
fields_set("result", op_null(v("data")))
加工结果:
{"data": "null", "result":"true"}

op_notnull 函数

函数定义

对值进行是否为非 null 判断,是则返回 true,否则返回 false。

语法描述

op_notnull()

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
data
任意类型的值
any
-
-

示例

示例1 原始日志:
{}
加工规则:
fields_set("result", op_notnull("null"))
加工结果:
{"result":"false"}
示例2 原始日志:
{"data": null}
加工规则:
fields_set("result", op_notnull(v("data")))
加工结果:
{"data": "null", "result":"false"}

op_str_eq 函数

函数定义

对字符串值进行比较,相等则返回 true。

语法描述

op_str_eq(值1, 值2, ignore_upper=False)

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
data1
字符串类型的值
string
-
-
data2
字符串类型的值
string
-
-
ignore_upper
是否区分大小写
bool
False
-

示例

示例1 原始日志:
{"field": "cls"}
加工规则:
fields_set("result", op_str_eq(v("field"), "cls"))
加工结果:
{"result":"true","field":"cls"}
示例2 原始日志:
{"field": "cls"}
加工规则:
fields_set("result", op_str_eq(v("field"), "etl|cls|data"))
加工结果:
{"result":"true","field":"cls"}
示例3 原始日志:
{"field": "CLS"}
加工规则:
fields_set("result", op_str_eq(v("field"), "cls", ignore_upper=True))
加工结果:
{"result":"true","field":"CLS"}
示例4 原始日志:
{"field": "CLS"}
加工规则:
fields_set("result", op_str_eq(v("field"), "etl|cls|data", ignore_upper=True))
加工结果:
{"result":"true","field":"CLS"}

random 函数

函数定义

生成随机数(两个参数之间的一个随机数),左闭右闭。

语法描述

random(值1, 值2)

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
data1
数值类型的值或可转为数值的字符串
number
-
-
data2
数值类型的值或可转为数值的字符串
number
-
-

示例

示例1 原始日志:
{"field1": "1"}
加工规则:
log_keep(op_eq(random(3, 5), 4))
加工结果:
{"field1": "1"}
示例2 原始日志:
{"field1": "1"}
加工规则:
fields_set("field2", random(1, 5))
加工结果:
{"field1":"1", "field2":"4"}

str_exist 函数

函数定义

判断是否存在子串。

语法描述

str_exist(值1, 值2, ignore_upper=False)

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
data1
字符串类型的值
string
-
-
data2
字符串类型的值
string
-
-
ignore_upper
是否区分大小写
bool
False
-

示例

原始日志:
{"data": "cls nihao"}
加工规则:
fields_set("result", str_exist(v(data), "nihao"))
加工结果:
{"result":"true","data":"cls nihao"}