概述
下面的语法适用于 lucene 查询模式。
常用查询语法
1、要搜索一个确切的字符串,即精确搜索,需要使用双引号引清理
示例:
"/app/logs/nginx/acess.log"
2、如果不带引号,将会匹配每个单词
/app/logs/nginx/acess.log
3、~模糊搜索
"/app/~"
"马~"
4、*匹配0到多个字符
*oken
"马*"
5、?匹配单个字符
toke?n
6、+,- 搜索结果是否包含指定信息
注意查询条件和指定信息之间不能有空格直接就是(+/-)连接符。
+:搜索结果中必须包含词项;
-:不能包含词项。
# 查询结果包含小燕
"/app/api/order"+"小燕"
# 查询结果不包含小于燕,但包含小明
"/app/api/order"-"小于燕"+"小明"
firstname:(+H* -He*) 搜索firstname字段里H开头的结果,并且排除firstname里He开头的结果
7、组合查询,运算符必须大写
AND,OR,NOT
(uid OR token ) AND version
"0eca9570-6441-4e2e-9d2c-09eb5764506b" AND "夏艺桐"
8、范围查询
[]:包含边界值;
{}:不包含边界值;
例如:
# 查询下面时间范围的日志,包含开始和结束两个时间
["2022-07-14 14:58:43.723" TO "2022-07-14 14:59:43.800"]
# 查询下面时间范围的日志,不包含开始和结束两个时间
{"2022-07-14 14:58:43.723" TO "2022-07-14 14:59:43.800"}
9、特殊字符需要在字符前加上转义字符\
特殊字符:+、-、&&、||、!、(、)、{、}、[、]、^、”、~、*、?、:、\
10、分组查询
(firstname:H* OR age:20) AND state:KS 先查询名字H开头年龄或者是20的结果,然后再与国家是KS的结合
查询语法总结
1、语法关键字
+ - && || ! ( ) { } [ ] ^ “ ~ * ? : /
如果所要查询的查询词中本身包含关键字,则需要用\进行转义(注意是本身!)
2、查询词(Term)
支持两种查询词,一种是单一查询词,如”hello”,一种是词组(phrase),如”hello world”。
3、查询域(Field)
例如:
message:"东电梯"
在查询语句中,可以指定从哪个域中寻找查询词,如果不指定,则从默认域中查找。
查询域和查询词之间用:分隔,如title:”Do it right”。
:仅对紧跟其后的查询词起作用,如果title:Do it right,则仅表示在title中查询Do,而it right要在默认域中查询。
例1:stream:“stdout”
例2:只搜“1”,可以搜到log和message两个字段都有1,搜 log:“1”,只可以搜到log字段的1
4、通配符查询(Wildcard)
支持两种通配符:?表示一个字符,表示多个字符。
通配符可以出现在查询词的中间或者末尾,如te?t,test,tet,但决不能出现在开始,如test,?test。
例1:k8s-?
例2: k8s-*
例3:kube-syst*m
5、模糊查询(Fuzzy)
模糊查询的算法是基于Levenshtein Distance,也即当两个词的差别小于某个比例的时候,就算匹配,如roam~0.8,即表示 相似度大于0.8才算匹配。
例1:fetc~
例2:con~
例3:“2栋单元”~0.8
6、区间查询(Range)
区间查询包含两种,一种是包含边界,用[A TO B]指定,一种是不包含边界,用{A TO B}指定。
如date:[20020101 TO 20030101],当然区间查询不仅仅用于时间,如title:{Aida TO Carmen}
例1:hostname:{k8s-1 TO k8s-5}
例2:时间范围查询
["2022-07-14 14:58:43.723" TO "2022-07-14 14:58:43.800"]
7、布尔操作符
布尔操作符包括连接符,如AND,OR,和修饰符,如NOT,+,-。
默认状态下,空格被认为是OR的关系,可以通过QueryParser.setDefaultOperator(Operator.AND)设置为空格为AND。
+表示一个查询语句是必须满足的(required),NOT和-表示一个查询语句是不能满足的(prohibited)。
例1:network AND error
例2: network OR error
8、组合
可以用括号,将查询语句进行组合,从而设定优先级。
例如:(jakarta OR apache) AND website
例1:network AND (error OR success)
参考
日志查询神器 Kibana简单使用
kibana日志搜索规则及搜索界面显示处理
你还在用命令看日志?快用 Kibana 吧,一张图片胜过千万行日志!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/100058.html