分词与索引

最近更新时间: 2024-06-12 15:06:00

分词

对于一个较长的日志进行检索时,通常只使用其中一部分内容进行检索。例如,需要检索出包含sample的如下完整日志:

10.20.20.10;[2018-07-16 13:12:57];GET /online/sample HTTP/1.1;200

日志全文很长,除sample外还有很多其他字符,因此其与检索条件并不是直接相等的。为满足该检索需求,需要对日志全文进行切分,变成很多个片段,每个片段被称之为“关键词”,而这个过程称之为“分词”。

例如,按符号对上面的日志进行切分,只要符号在@&()='",;:<>[]{}/ \n\t\r范围内,就切分日志,将得到如下的关键词列表:

10.20.20.10
2018-07-16
13
12
57
GET
online
sample
HTTP
1.1
200

检索时,只要日志中出现了检索条件中的关键词sample,就认为其符合检索条件,便可以检索出来。

日志分词依据包含两类,可在配置索引中设置。

  • 分词符:可自定义需要按照哪些符号对日志进行切分,支持英文符号及\n\t\r。例如,在上面的例子中,@&()='",;:<>[]{}/ \n\t\r即为分词符。

  • 是否包含中文:中文较为特殊,不能使用中文符号作为分词符,而且仅按照符号对中文进行分词也往往达不到预期效果。例如,日志为用户登录失败,密码错误,需要使用登录失败进行检索,是不能通过符号对日志进行切分来满足检索需求的。此时可在配置索引中设置该日志“包含中文”,CLS 将自动将日志中的每一个汉字切分为独立的关键词。

索引

为了快速的搜索出需要的日志,CLS 对上传至平台的日志进行包括分词在内的很多处理,这个过程称之为创建“索引”。索引决定了日志能够以什么样的条件来进行检索和分析,因此在上传日志数据时,需要为日志主题设置一个合理的索引规则,以方便后续检索分析

索引规则仅针对新上传的日志数据生效,历史数据不生效,创建索引的过程中会产生索引流量及索引存储量,存在一定的使用成本。