短语搜索用于准确匹配目标短语,例如搜索语句abc def,不区分先后顺序,将匹配所有同时包含abc和def的日志。短语搜索和关键词搜索的区别请参考表1。
-
短语搜索:在关键词搜索语法的基础上实现,短语搜索能够区分关键词的顺序,用于精准匹配目标短语,搜索结果更加精确。短语搜索适用于英文短语、中文短语的搜索,不支持模糊搜索。
-
关键词搜索:关键词搜索是基于分词实现,通过分词符先将搜索内容拆分为多个关键词,然后匹配日志。关键词搜索不会区分多个关键词在日志中出现的顺序,因此只要日志中按照搜索的与或非逻辑能命中关键词,该日志就会被搜索到。
表 1 搜索区别
搜索方式 短语搜索 关键字搜索 搜索区别 区分关键词的顺序,用于精准匹配目标短语,搜索结果更加精确。 不区分关键词的顺序,按照搜索逻辑命中关键词即可。 举例说明1 假设您的日志流中存在2条原始日志,如下:
原始日志1:this service is lts
原始日志2:lts is service举例说明2 短语搜索:#"is lts",会命中1条日志。 关键词搜索:is lts,会命中2条日志。 举例说明3 短语搜索:#"lts is",会命中1条日志。 关键词搜索:lts is,会命中2条日志。
搜索语法
表 2 搜索方式
搜索方式 | 说明 |
---|---|
全文搜索 | #"abc def"content:#"abc def"content为日志原文对应的内置字段,**#"abc def"**等同于**content:#"abc def"**,默认匹配日志原文的内容。 |
字段搜索 | key:#"abc def"value参数不可为空。字段搜索和not运算符配合使用时,还会匹配到不包含该字段的日志。 |
使用限制
-
短语搜索不支持搭配模糊搜索。
短语搜索中的星号(*)和问号(?)会被视为普通字符,因此短语搜索不支持搭配模糊搜索,可以用来搜索日志中的星号(*)和问号(?)。
-
短语搜索不支持对分词符进行搜索。
例如搜索语句**#"var/log",其中 / 为分词符,搜索语句等同于#"var log",会搜索包含目标短语var log的日志。同理,搜索语句#"var:log"、#"var;log"等搜索的也是包含目标短语var log**的日志。
-
中文搜索推荐采用短语搜索。
由于中文默认采用的是一元分词,每个汉字单独分词,搜索时会匹配同时包含搜索语句中每一个汉字的日志,本身便具有模糊搜索的特性,当需要更加精确的结果时,推荐采用短语搜索。
示例说明
表 3 搜索说明
搜索需求 | 搜索语句 |
---|---|
搜索User-Agent字段值包含短语Mon, 17 Apr 2023的日志。 | User-Agent:#"Mon, 17 Apr 2023" |
搜索User-Agent字段值包含短语Mozilla/5.0的日志。 | User-Agent:#"Mozilla/5.0" |
搜索week字段值包含短语星期一的日志。 | week:#"星期一" |