和搜索引擎类似,文本类(Text)数据查询基于词(Term)的命中,因此需要配置分词符、大小写敏感,包含中文(中文分词)选项。

配置说明

大小写敏感

原始日志查询时是否区分大小写。例如原始日志为“internalError”:

  • false(不区分),即查询关键字“INTERNALERROR”和“internalerror”都能查询到样例日志。
  • true(区分),只能通过关键字“internalError”查询到样例日志。

分词符

原始日志内容根据分词符可以将日志内容切分成多个关键词。

例如我们要查询如下日志内容:

/url/pic/abc.gif
  • 不设置任何分词符,整个字符串会作为一个独立单词/url/pic/abc.gif,只有通过该完整字符串,或通过模糊查询/url/pic/*才能找到。
  • 如果设置分词符为/,则原始日志被切分为urlpicabc.gif三个单词,可以使用任意一个单词或单词模糊查询都可以找到该日志,例如urlabc.gifpi*,也可以使用/url/pic/abc.gif进行查询(查询时会被拆分为url and pic and abc.gif三个条件)。
  • 如果设置分词符为/.,则原始日志被切分为urlpicabcgif四个单词。
说明
通过设置合理的分词符,可以放宽查询的范围。

包含中文

如果日志中包含中文,需要打开中文分词。例如对如下日志内容:

buyer:用户小李飞刀lee

默认分词符为”:”,则原始日志会被拆分为buyer用户小李飞刀lee这两个单词,如果搜索用户,则不会返回lee,如果开启包含中文选项后,日志服务后台分词器会智能去理解中文含义,并将日志拆分为buyer用户小李飞刀lee五个单词,无论使用飞刀小李飞刀(会被解析为:小李 and 飞刀) 都可以查找到日志。

说明
中文分词对写入速度会有一定影响,请根据需求谨慎设置。

全文索引

全文查询(索引)默认会将整条日志(除Time以外所有字段、包括Key)作为文本类型,全文查询默认不需要指定key。例如对以下由4个字段组成的日志(时间/status/level/message)。

[20180102 12:00:00] 200,error,some thing is error in this field
  • time:2018-01-02 12:00:00
  • level:”error”
  • status:200
  • message:”some thing is error in this field”

当打开全文索引时,整条日志中会根据Key:Value + “空格”模式组装成一条文本数据,例如:

status:200 level:error message:"some thing is error in this field"
说明
  • 全文检索时不需要输入前缀,在检索过程中搜索error时(level和message两个字段中error都会被命中)。
  • 全文检索需要设置分词符,例如当设置分词符为“ ”时,可以“status:200”作为一个短语;如果分词符为“ :“时,“status”和“200”分别会作为2个独立短语。
  • 数值类会被作为文本处理,例如200可以检索到该日志,时间字段(time) 不会被作为文本处理。
  • 当输入Key时整条日志也会被命中,例如“status”。