ELK:kibana使用的lucene查詢語法

kibana在ELK陣營中用來查詢展現數據
elasticsearch構建在Lucene之上,過濾器語法和Lucene相同html


kibana官方演示頁面chrome

全文搜索

在搜索欄輸入login,會返回全部字段值中包含login的文檔
apache

使用雙引號包起來做爲一個短語搜索
"like Gecko"api

字段

也能夠按頁面左側顯示的字段搜索
限定字段全文搜索:field:value
精確搜索:關鍵字加上雙引號 filed:"value"
http.code:404 搜索http狀態碼爲404的文檔app

字段自己是否存在
_exists_:http:返回結果中須要有http字段
_missing_:http:不能含有http字段elasticsearch

通配符

? 匹配單個字符
* 匹配0到多個字符ide

kiba?a, el*search性能

? * 不能用做第一個字符,例如:?text *textui

正則

es支持部分正則功能,性能較差
name:/joh?n(ath[oa]n)/google

模糊搜索

quikc~ brwn~ foks~
~:在一個單詞後面加上~啓用模糊搜索,能夠搜到一些拼寫錯誤的單詞

first~ 這種也能匹配到 frist

還能夠設置編輯距離(整數),指定須要多少類似度
cromm~1 會匹配到 from 和 chrome
默認2,越大越接近搜索的原始值,設置爲1基本能搜到80%拼寫錯誤的單詞

近似搜索

在短語後面加上~,能夠搜到被隔開或順序不一樣的單詞
"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)

優先級

quick^2 fox
使用^使一個詞語比另外一個搜索優先級更高,默認爲1,能夠爲0~1之間的浮點數,來下降優先級

邏輯操做

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






參考連接
https://www.elastic.co/guide/... (當前爲es 5.5版本)
https://lucene.apache.org/cor...
https://lucene.apache.org/cor...
hhttps://kibana.logstash.es/co...

相關文章
相關標籤/搜索