说明
本文仅适用于架构 2.0。
日志主题的索引配置中设置了分词符之后,日志服务会根据预设的分词符拆分日志内容。例如分词符中设置了连字符(-),那么 2023-07-21
将被分割为 2023
、07
和 21
三个关键字。检索日志时,如果检索的关键词中包含分词符,应使用双引号(")包裹关键词,否则日志服务按照 AND 逻辑匹配分词后所有分割出来的短语。
例如查询包含 2023-07-21
的原始日志:
2023-07-21
,会返回包含 2023
、07
或 21
的日志数据。"2023-07-21"
,则返回同时包含 2023
、07
和 21
、且关键词按指定顺序出现的日志数据。日志服务支持在全文索引和键值索引中设置分词符,默认的分词符包括 !@#%^&*"()-_=', <>/?|;:\n\t\r[]{}\
,您可以在索引配置页面查看已配置的分词符。
说明
检索分析语句的 SQL 部分中,通过双引号包裹的关键词将会作为字段名(Key)进行处理。
您可以基于如下方式进行精确检索。
指定具体的关键词进行精确检索。
示例 1:查询包含关键词 error
的日志。
error
示例 2:查询 Method
字段值包含 GET
的日志。
Method:GET
示例 3:查询包含关键词 log failed
的日志。
"log failed"
在此查询中,包含 log failed
、failed log
或同时包含 log
和 failed
的日志都将被查询到。如果您要精准匹配短语 log failed
,可参考短语查询、基于 SQL LIKE 语法的精确检索。
通过短语查询可精确匹配目标短语。
示例 :查询包含短语 log failed
的日志。
#"log failed"
SQL LIKE 语法用于在 WHERE 子句中指定检索条件,可实现日志的精准查询。在 LIKE 语法中百分号(%)表示匹配任意数量的字符,包括 0 个字符;下划线 (_)表示匹配单个字符。
示例:查询 URL
字段值包含 put_logs?topic_id
的日志,其中 ?
为分词符。
* | SELECT * WHERE URL like '%put_logs?topic_id%'
日志服务执行模糊检索语句时,会识别与模糊关键词相匹配的前 100 词,并返回包含这 100 词中任意词的日志。你可以通过如下方式进行模糊检索。
示例 1:查询包含以 erro
开头的关键词的日志。
erro*
示例 2:查询 Action
字段值是以 put
开头的日志。
Action:put*
SQL LIKE 语法用于在 WHERE 子句中指定检索条件,可实现日志的模糊查询。在 LIKE 语法中百分号(%)表示匹配任意数量的字符,包括 0 个字符;下划线 (_)表示匹配单个字符。
示例 1:查询 ReqID 字段值是以 8f60
开头的日志。
* | SELECT * WHERE ReqID like '8f60%'
示例 2 :查询 region
字段值不包含 shanghai
的日志。
* | SELECT * WHERE region NOT LIKE '%shanghai%'