智能日志管理平台

  • 搜索语法

    最近更新时间:2018-08-01 14:20:12

    日志分析服务提供类 Lucene 语法来进行日志搜索,但需要注意,一旦有任何数据包含以下符号,无论使用哪种语法,在搜索时,需要以双引号("")包含起来:

    +  -  
    &&  ||  !
    ( )  { }  [ ] 
    ^  ”  ~  *  ?  :  \
    

    使用 lucene 语法搜索

    条件编写规范

    名称 语义
    * 查询所有内容
    AND query1 AND query2,查询交集
    OR query1 OR query2,查询并集
    NOT query1 AND NOT query2,表示符合query1,不符合query2的结果
    () 把一个或多个query合并成一个query,提升优先级
    [] 区间查询,包括边界,如 status:[400 TO 500] 查询 status 字段在 400 到 500 区间内的数据
    {} 区间查询,不包括边界,如 status:{400 TO 500} 查询 status 字段在 400 到 500 区间内的数据,并排除边界值
    \ 转义字符,如正则表达式搜索时表达式包含反斜杠的情况,如 request_path:/\/query\/abc\/.*/ 查询 request_path 字段匹配正则表达式 /path/abc/.* 的数据
    >,=,<,<=,>= 区间查询,如 status:>=500 查询 status 大于 500 的数据

    正则表达式查询

    正则表达式查询条件编写时,以"/"开头和结尾。

    比如:name:/joh?n(ath[oa]n)/

    通配符查询

    使用?代替一个字符,*代替0或者多个字符

    比如:qu?ck bro*

    • 注意使用这个查询会消耗大量资源,并且速度会降低。

    查询举例:

    字段名称name,类型string,包含内容a的记录:

    name:a
    

    字段名称ip,类型string,包含内容ab的记录:

    ip:a OR ip:b
    

    字段名称hosts,类型string,包含内容a或者b,不包含c的记录:

    (hosts:a OR hosts:b) AND (NOT hosts:c)
    

    字段名称ip,类型string,包含内容ab,同时字段名称hosts,类型string,包含内容c的记录:

    (ip:a OR ip:b) AND (hosts:c)
    

    字段名称createTime,类型date,包含内容2016-1-12016-1-2的记录:

    createTime:[2016-01-01 TO 2016-01-02]
    

    字段名称count,类型long或者float,内容大于5的记录:

    count:>5
    
    以上内容是否对您有帮助?
  • Close