1 概述
很多系统的日志都会放在 Kibana 供查询,就是所谓的 ELK。Kibana 除了可以使用界面供的一些 tab 或者 button 去筛选日志,也可以在搜索栏中使用 Lucene 的语法简单的交互式查询。可以做基于字段的特定搜索,过滤数据,也可以查看索引号的文档。
查询的语法可以参考官方文档,非常易读,非常容易,包括正则语法和其他模糊匹配方法。
2 Lucene 语法查询
2.1 简易查询
如果查询的时候没有明确查询的字段,会默认为 _all 字段,也就是全文查询。也可以指定一个字段,又称为 field 来查询。
# 全文查询 Exception
Exception
# 指定查询字段 message 里的 Exception
message: Exception
# 查询短语
message: "java.lang.NullPointerException"
# 任何 message 字段都包含 Exception
message\*: Exception
# 通配符的使用,? 代替单个字符,* 代替零个或者多个字符
message: Exceptio*
# 正则表达式通过使用 / 包围,可以植入到查询的字符串中
message: /Ex?(cep[tion])/
# 另一个正则的使用,匹配的含义是「两位非abc的任意字符」
info.recallId: /[^abc]{2}/
2.2 多字段查询
可以通过一些布尔操作符来使用,如果查询中没有任意的操作符号,那么默认使用 OR 操