Press "Enter" to skip to content

kibana使用的lucene查询语法

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

Your email address will not be published. Required fields are marked *