You need to enable JavaScript to run this app.
导航
事件检查函数
最近更新时间:2024.06.14 17:11:07首次发布时间:2023.09.27 14:09:14

f_match 函数

判断指定日志字段值是否满足正则表达式,返回字段匹配的判断结果,即 True 或 False。

函数语法/格式

f_match(field,regex=正则表达式,full=False)

参数说明如下:

参数

参数类型

是否必选

默认值

取值范围

说明

field

String

/

/

字段名。当指定字段不存在时,判断为条件不匹配。

regex

String

/

/

正则表达式。

full

Bool

False

  • False
  • True

是否完全匹配,默认为 False,即部分匹配。 例如: 正则表达式的值与字符串完全一致,则是完全匹配。 例如abcd与\w+完全匹配。您可以在开头与结尾添加^$将部分匹配的场景变成完全匹配。

函数示例

  • 场景:判断日志中 content 字段是否与正则表达式匹配。

  • 加工规则:

    f_set("f_match_part",f_match("content","12"))
    f_set("f_match_full",f_match("content","12",True))
    
  • 日志样例:

    {
        "content": "1234"
    }
    
  • 加工结果:

    {
        "content": "1234",
        "f_match_part": "True",
        "f_match_full": "False"
    }
    

f_search 函数

判断日志中是否有符合检索语句的内容,是则返回 True,否则返回 False。

函数语法/格式

f_search(query=检索条件)

参数说明如下:

参数

参数类型

是否必选

默认值

取值范围

说明

query

string

/

/

查询字符串,用于快速过滤日志的查询字符串。详细信息请参考查询字符串语法

函数示例

  • 场景:判断日志 count 字段中是否有大于 0 的值。

  • 加工规则:

    f_set("f_search",f_search("count > 0"))
    
  • 日志样例:

    {
        "count": "100"
    }
    
  • 加工结果:

    {
        "count": "100",
        "f_search": "True"
    }
    

常见语法规则的示例如下:

# 全文检索
f_search("byte dance")    # 全文检索,判断全文中是否包含关键词 byte 或 dance。
f_search('"byte dance"')   # 全文检索,判断全文中是否包含关键词 byte dance,该关键词中包含空格。

# 键值检索
f_search('method: get')         # 键值检索,判断 method 字段值中是否包含关键词 get。
f_search('company: "volc engine"')   # 键值检索,判断 company 字段的值中是否包含关键词 volc engine,该关键词中包含空格。
f_search('company: byte dance')   # 键值检索,判断 company 字段的值中是否包含关键词 byte 或 dance。

# 完全匹配
f_search('company== "byte dance"')  

# 通配符搜索。其中,星号(*)匹配零个或多个字符,半角问号(?)匹配一个字符。
f_search('company: do*y?n')  # 模糊匹配,使用通配符星号(*)和半角问号(?)
f_search('company: byt*dance')   # 模糊匹配,使用通配符星号(*)。
f_search('company: tik?ok')    # 模糊匹配,使用通配符半角问号(?)。

# 字段名转义
f_search('"中文字段": abc')           # 中文字符,需使用双引号("")包裹。
f_search("\*a: value")              # 字段名中包含特殊字符时,需使用反斜线(\)转义。
f_search("__tag__\:field: value")  # 字段名中包含特殊字符时,需使用反斜线(\)转义。

# 正则匹配
f_search('company~="byt[\w]dance"')   # 正则式匹配,用于判断 company 字段的值是否匹配包含byt+一个字母/数字/下划线+dance的字符串。

# 数字
f_search('amount: [10,200]')  # 判断 amount 字段值是否在 [10,200] 之间。
f_search('distance >=10')     # 判断 distance 字段值是否大于等于 10。
f_search('distance > 20')     # 判断 distance 字段值是否大于 20。

# 使用关系运算符
f_search('byte OR dance') # 关系运算符需要使用大写。
f_search('byte AND  ( NOT dancer OR tiktok)')
f_search('byte AND (dancer OR dance)')
f_search("byte || !dance")   # OR NOT
f_search("byte || dance")    # OR
f_search("byte && dance")    # AND