云日志服务 LTS-映射富化函数:e_search_dict_map
e_search_dict_map
对关键字(查询字符串)以及其匹配的值的字典数据进行映射。
- 函数格式
e_search_dict_map(data, output_field, multi_match=false, multi_join=" ", missing=None, mode="overwrite")
- 参数说明
参数名称
数据类型
是否必填
说明
data
Dict
是
映射关系的字典。必须为标准的{key01:value01,key01:value02,...}格式,且关键字key必须是查询字符串。
output_field
String
是
输出字段的名称。
multi_match
Boolean
否
是否允许匹配多个字段。默认为false表示不匹配多个字段,会返回匹配到的最后一个字段值。支持使用multi_join拼接多个匹配的值。
multi_join
String
否
匹配多个字段时,多值的连接字符串,默认为空格。当multi_match值为true时生效。
missing
String
否
无匹配字段时,将该参数的取值赋给输出字段output_field。默认为None表示不做映射赋值操作。
说明:如果字典中包含默认匹配星号(*),由于星号(*)的优先级高于missing,此时missing将不起作用。
mode
String
否
字段的覆盖模式。默认为overwrite。
- 返回结果
返回查询匹配中后的映射结果。
- 函数示例
- 示例1:匹配模式。
- 测试数据
{ "data":123 , "pro":1 }
- 加工规则
e_search_dict_map ({"pro==1": "TCP", "pro==2": "UDP", "pro==3": "HTTP"}, "protocol")
- 加工结果
data:123 pro:1 protocol:TCP
- 测试数据
- 示例2:根据字段值的不同开头进行映射。
- 测试数据
{ "status":"200,300" }
- 加工规则
e_search_dict_map( { "status:2??": "ok", "status:3??": "redirect", "status:4??": "auth", "status:5??": "server_error", }, "status_desc", multi_match=true, multi_join="测试", )
- 加工结果
status:200,300 status_desc:ok测试redirect
- 测试数据
- 示例1:匹配模式。
- 更多参考