分词
分词示意
检索一个较长的日志时,通常只使用其中一部分内容进行检索。例如:需要检索出包含sample
的如下完整日志:
10.20.20.10;[2018-07-16 13:12:57];GET /online/sample HTTP/1.1;200
由于日志全文很长,除sample
外还有很多其他内容,其与检索条件并不是直接相等,因此不能直接使用sample
作为检索条件来检索该日志。为满足该检索需求,需要将日志全文切分为多个片段,每个片段称之为一个“词”,而这个过程称之为“分词”。
例如:按符号对上述示例日志进行切分,只要出现了@&()='",;:<>[]{}/ \\n\\t\\r
范围内的符号,就切分日志,将得到如下的词:
检索条件为sample
时,上述分词后的日志包含sample
,即认为符合检索条件。
检索条件本身也会进行分词,例如下图3种检索条件:
检索条件A:\\/online\\/login
其中\\
用于转义/
符号(该符号为检索语法保留符号,因此需要转义)。
转义后的/
符号是分词符,因此实际的检索条件为 online OR login
,日志中只要包含 online 或 login,即符合检索条件。
上述示例日志符合该检索条件。
检索条件B:"/online/login"
由于双引号的存在,/
符号无需再进行转义。
双引号内的内容同样会分为两个词,但双引号表示日志需同时存在这两个词,且两个词顺序严格一致才符合检索条件。
上述示例日志不包含login
,不符合该检索条件。
检索条件C:"/online/sample"
上述示例日志同时包含online
和sample
,且顺序与检索条件一致,符合该检索条件。
在大多数使用场景下,检索条件如果包含分词符,建议使用双引号语法进行检索,既能避免添加转义符,又能更加精准的检索到所需的日志。更多检索语法说明参见 语法与规则。 分词设置
分词符:可自定义需要按照哪些符号对日志进行切分,支持英文符号及\\n\\t\\r。在上面的例子中,@&()='",;:<>[]{}/ \\n\\t\\r
即为分词符。
是否包含中文:中文较为特殊,不能使用中文符号作为分词符,而且仅按照符号对中文进行分词也往往达不到预期效果。例如,日志为用户登录失败,密码错误
,需要使用"登录失败"
进行检索,是不能通过符号对日志进行切分来满足检索需求的。此时可在 配置索引 中设置该日志“包含中文”,日志服务(Cloud Log Service,CLS)将自动将日志中的每一个汉字切分为独立的词。 索引
为了快速检索出需要的日志,CLS 对上传至平台的日志进行包括分词在内的很多预处理,这个过程称之为创建“索引”。索引决定了日志能够以什么样的条件来进行检索和分析,因此在上传日志数据前,需要为日志主题设置一个合理的索引规则,以方便后续检索分析,详细介绍请参考 配置索引。 索引规则仅针对新上传的日志数据生效,历史数据不生效,创建索引的过程中会产生索引流量及索引存储量,存在一定的使用成本。
本页内容是否解决了您的问题?