使用 ELK查询日志已有一段时间,直到今天我才发现 Kibana Discover 实际上是默认通过 Kibana Query Language(KQL)查询语法来进行数据查询的。
常用查询语法
全文搜索
查找包含101021,或者包含1970325445000048,或者两者都包含。
长句子通常会被自动分词。KQL使用一种称为“Tokenization”的处理方式,将输入的长句子分解为单个的词语或标记(tokens),以便进行匹配和搜索。
精确匹配:
field_name: value
上面这个表达式,会查询出field_name字段中包含value的文档对象,注意是包含,包含的是value这一个词,比如下面几种情况都会被查询出来
模糊匹配
field_name: value*
field_name: *value*
范围查询
time:[start_time TO end_time]
逻辑运算
field_name1: value1 AND/OR/NOT field_name2: value2