kibana使用的是lucene查询语法, 使用该语法不仅可以在kibana上使用, 也可以在Grafana中使用.
下面简单介绍一下使用方法.
全文搜索
在搜索栏输入login, 会返回所有字段值中包含login的文档
使用双引号包起来作为一个短语搜索
"like Gecko"
字段(Field)
也可以按页面左侧显示的字段搜索
field:value # 限定字段全文搜索
filed:"value" # 精确搜索, 关键字加上双引号
http_code:404 # 搜索http状态码为404的文档
字段本身是否存在
_exists_:http_host # 返回结果中需要有http_host字段
_missing_:http_host # 不能含有http_host字段
通配符
? 匹配单个字符
* 匹配0到多个字符
例如
kiba?a, el*search
注意: 不能通配第一个字符,例如下面2个都是不合法的
?text # 非法
*text # 非法
正则
ES支持一部分正则功能, 例如
name:/joh?n(ath[oa]n)/
模糊搜索
在一个单词后面加上~启用模糊搜索, 可以搜到一些拼写错误的单词, 例如
quikc~
brwn~
foks~
first~ # 这种也能匹配到 frist
还可以设置编辑距离(整数), 指定需要多少相似度, 这里不多说.
相似搜索
在短语后面加上~,可以搜到被隔开或顺序不同的单词
"where select"~5
# 表示 select 和 where 中间可以隔着5个单词,可以搜到 select password from users where id=1
范围搜索
数值/时间/IP/字符串 类型的字段可以对某一范围进行查询
length:[100 TO 200]
sip:["172.24.20.110" TO "172.24.20.140"]
date:{"now-6h" TO "now"}
tag:{b TO e} # 搜索b到e中间的字符
count:[10 TO *] # * 表示一端不限制范围
count:[1 TO 5}
# [] 表示端点数值包含在范围内,{}表示端点数值不包含在范围内,可以混合使用,
# 此语句为1到5,包括1,不包括5
age:>10
age:<=10
age:(>=10 AND <20)
逻辑操作
AND
OR
+ # 搜索结果中必须包含此项
- # 不能含有此项
+apache -jakarta test aaa bbb # 结果中必须存在apache, 不能有jakarta, 剩余部分尽量都匹配到
分组进行逻辑操作
(jakarta OR apache) AND jakarta
title:(+return +"pink panther")
host:(baidu OR qq OR google) AND host:(com OR cn)
特殊字符转义
以下字符均需使用\转义
+ - = && || > < ! ( ) { } [ ] ^ " ~ * ? : \ /
# 举例
\(1\+1\)\=2用来查询(1+1)=2
Leave a Reply