本文介绍短语查询的语法、使用限制和示例。
概述
日志服务查询采用的是分词法,例如查询语句为abc def,将匹配所有包含abc和def的日志,不区分先后顺序,无法精准匹配目标短语。现在日志服务推出短语查询,用于精准匹配一段短语。
日志服务接收到短语查询请求后,执行流程主要分为如下两步:
-
先执行对应的非短语查询语句进行日志查询。例如执行
#"abc def"语句,实际先执行"abc def"语句。说明为避免查询量太大,目前执行短语查询时,限制步骤1最多返回10,000条结果。
-
在上述查询结果中再挑选符合短语查询条件的日志,并返回最终的查询结果。
语法
-
SLS Query Skill 智能查询分析日志:日志服务提供了Agent Skill,支持在本地 AI Agent 中通过自然语言查询和分析 SLS 日志数据。
-
通过AI智能生成查询与分析语句(Copilot):日志服务也提供了AI智能辅助SQL语句的使用,支持自然语言生成SQL、解释复杂SQL、优化SQL语句。
-
字段查询
key:#"abc def" -
全文查询
#"abc def"
使用限制
-
短语查询的结果只支持向前、向后的连续翻页,不支持随机跳转。
-
执行短语查询后,日志分布直方图展示的是非短语查询的结果。
-
短语查询不支持搭配模糊查询。
-
短语查询语句中必须添加半角双引号("")。
-
短语查询语句中不支持搭配not语句,即不支持
not #"abc def"。 -
短语查询语句中不支持搭配分析语句,即不支持
#"abc" | select ***。因此使用短语查询时,也不支持快速分析功能。
翻页说明
当您执行一次翻页操作时,日志服务会对应执行一次短语查询操作,用于保证查询结果的连续性。
短语查询每次最多查询10,000条日志,在翻页过程中,可能出现某页中显示的日志数量少于每页显示对应的数量,但仍支持向后翻页。即表示当前查询的10,000条日志中,满足短语查询条件的日志数量少于每页显示对应的数量。
例如日志总数为20,000条,每页支持显示100条,当您执行一次短语查询后,只返回89条且向后翻页功能可用,此时说明前10,000条日志中只有89条日志满足短语查询条件。您可以执行翻页操作,日志服务会自动在后10,000条日志中,执行第二次短语查询,并返回符合条件的日志。
示例
-
例如您要查询包含
redo_index/1的日志。-
使用非短语查询语句
"redo_index/1",日志服务将根据全文索引匹配部分关键词。在搜索栏中直接输入redo_index/1进行非短语查询时,日志服务会按分词符/拆分查询词,匹配到包含redo_index和1等词元的日志条目(如路径/redo_index/318/.../1/...、/redo_index/14912/.../1/...),返回大量非精确匹配结果。 -
使用短语查询语句
#"redo_index/1",日志服务将匹配完整的短语redo_index/1。使用短语查询语句#"redo_index/1",日志服务精确匹配包含完整字符串redo_index/1的日志记录,查询结果中日志条目的文件路径字段包含/redo_index/1/完整片段,表明短语查询未对该字符串进行分词拆分。
-
-
例如您要查询包含
02/Mar的日志(调试)。-
使用非短语查询语句time_local: 02/Mar,日志服务将根据全文索引匹配部分关键词。
查询结果中包含
time_local值为01/Mar/2025:15:02:56的日志条目。该条目的日期实际为01/Mar而非02/Mar,但因为时间部分15:02:56中包含关键词02,且日期部分包含关键词Mar,两个关键词被分别匹配命中,因此该条目也被返回。 -
使用短语查询语句
time_local: #"02/Mar",日志服务将匹配完整的短语02/Mar。查询结果显示匹配到的日志中
time_local字段值为02/Mar/2025:23:59:56,其中包含完整短语02/Mar,符合匹配预期。
-