You need to enable JavaScript to run this app.
导航
检索分析
最近更新时间:2024.06.28 15:50:44首次发布时间:2023.07.21 15:58:03

说明

本文仅适用于架构 2.0。

检索分析日志时,双引号的使用场景是什么?

日志主题的索引配置中设置了分词符之后,日志服务会根据预设的分词符拆分日志内容。例如分词符中设置了连字符(-),那么 2023-07-21 将被分割为 20230721 三个关键字。检索日志时,如果检索的关键词中包含分词符,应使用双引号(")包裹关键词,否则日志服务按照 AND 逻辑匹配分词后所有分割出来的短语。
例如查询包含 2023-07-21 的原始日志:

  • 如果直接检索关键词 2023-07-21,会返回包含 20230721 的日志数据。
  • 如果检索时用双引号包裹关键词 "2023-07-21",则返回同时包含 20230721、且关键词按指定顺序出现的日志数据。

日志服务支持在全文索引和键值索引中设置分词符,默认的分词符包括 !@#%^&*"()-_=', <>/?|;:\n\t\r[]{}\,您可以在索引配置页面查看已配置的分词符。

说明

检索分析语句的 SQL 部分中,通过双引号包裹的关键词将会作为字段名(Key)进行处理。

如何精确检索日志?

您可以基于如下方式进行精确检索。

基础精确检索

指定具体的关键词进行精确检索。

  • 示例 1:查询包含关键词 error 的日志。

    error
    

    图片

  • 示例 2:查询 Method 字段值包含 GET 的日志。

    Method:GET
    

    图片

  • 示例 3:查询包含关键词 log failed 的日志。

    "log failed"
    

    在此查询中,包含 log failedfailed log 或同时包含 logfailed 的日志都将被查询到。如果您要精准匹配短语 log failed,可参考短语查询基于 SQL LIKE 语法的精确检索
    图片

短语查询

通过短语查询可精确匹配目标短语。
示例 :查询包含短语 log failed 的日志。

#"log failed"

图片

基于 SQL LIKE 语法的精确检索

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 语法的模糊检索

SQL LIKE 语法用于在 WHERE 子句中指定检索条件,可实现日志的模糊查询。在 LIKE 语法中百分号(%)表示匹配任意数量的字符,包括 0 个字符;下划线 (_)表示匹配单个字符。

  • 示例 1:查询 ReqID 字段值是以 8f60 开头的日志。

    * | SELECT * WHERE ReqID like '8f60%'
    

    图片

  • 示例 2 :查询 region 字段值不包含 shanghai 的日志。

    * | SELECT * WHERE region NOT LIKE '%shanghai%'
    

    图片