1. 程式人生 > 其它 >Kibana查詢語法使用手冊【轉】

Kibana查詢語法使用手冊【轉】

速查
全文搜尋
在搜尋欄輸入login,會返回所有欄位值中包含login的文件
使用雙引號包起來作為一個短語搜尋

"like Gecko"


也可以按頁面左側顯示的欄位搜尋
限定欄位全文搜尋:field:value
精確搜尋:關鍵字加上雙引號 filed:“value”
http.code:404 搜尋http狀態碼為404的文件

欄位本身是否存在
exists:http:返回結果中需要有http欄位
missing:http:不能含有http欄位
萬用字元

? 匹配單個字元

匹配0到多個字元
kiba?a, el*search

? * 不能用作第一個字元,例如:?text *text

正則
es支援部分正則功能,效能較差
name:/joh?n(ath[oa]n)/
模糊搜尋


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
1
欄位分組
title:(+return +"pink panther")
host:(baidu OR qq OR google) AND host:(com OR cn)

轉義特殊字元
= && || > < ! ( ) { } [ ] ^ " ~ * ? : \ /
以上字元當作值搜尋的時候需要用\轉義
(1+1)=2用來查詢(1+1)=2
簡單查詢
1、範圍查詢
age:[20 TO 30] age:{20 TO 30}

注:[ ] 表示端點數值包含在範圍內,{ } 表示端點數值不包含在範圍內

2、邏輯操作
AND OR 例子:firstname:H* AND age:20 firstname:H* OR age:20

:搜尋結果中必須包含此項
:不能含有此項
例: +firstname:H* -age:20 city:H* firstname欄位結果中必須存在H開頭的,不能有年齡是20的,city欄位H開頭的可有可無

3、分組
(firstname:H* OR age:20) AND state:KS 先查詢名字H開頭年齡或者是20的結果,然後再與國家是KS的結合

firstname:(+H* -He*) 搜尋firstname欄位裡H開頭的結果,並且排除firstname裡He開頭的結果

4、轉義特殊字元
+ - && || ! () {} [] ^" ~ * ? : \

注意:以上字元當作值搜尋的時候需要用 \ 轉義

Lucene語法
Kibana查詢語法和Lucene相同,下面是Lucene的查詢語法介紹。

注意:Lucene查詢語法不適合在程式中使用,程式中使用可以呼叫Lucene-API,API提供了豐富功能來組合定製你所需要的查詢器,查詢語法是為手工輸入高階查詢設計的,而不是為程式拼接語法串而設計的。

簡單說明
Terms
一個查詢將分解為若干Term以及操作符,有兩種Term,其一是單一Term,其二為短語
單一Term是經過分析器分詞後的最小單元,就是一個簡單的單詞,比如:hello、world等
短語是用雙括號括起來的一組詞,例如:”hello world”
多個Term可以通過布林操作合併在一個更加複雜的查詢器中

Fields
Lucene支援多欄位資料,當你在查詢的時候你可以指定一個欄位查詢,key和value用冒號隔開即可,如:

MODULE:FrontNginx AND thumbnail

模糊查詢
Term Modifiers
Lucene支援在Term中使用萬用字元來支援模糊查詢,“?”萬用字元一個字元,“*”通配多個字元

te?t
test*
te*t

注意:不能將“*”和“?”放在第一個字元來查詢。

Fuzzy Searches
Lucene支援基於編輯距離演算法的模糊搜尋,可以使用波浪符號“~”放在查詢詞的後面,比如搜尋一個與“ahumbnail”拼寫相近的詞可以使用:

ahumbnail~

該查詢將尋找類似“ahumbnail”和“thumbnail”等的詞語,也叫相似度查詢。

Proximity Searches
Lucene支援指定距離查詢,可以使用波浪號“~”加數字在查詢詞後。舉例來說搜尋“thumbnail”和“quality”距離10個字元以內,你可以使用如下語法

"thumbnail quality"~10

Range Searches
範圍查詢允許指定某個欄位最大值和最小值,查詢在二者之間的所有資料。也可以對非字元型別來進行範圍查詢:

Parsed.status:[400 TO 499]
Parsed.bucket:{mail-online TO nail-online}

注意:範圍查詢在Kibana中查詢的結果並不準確。

優先順序
Lucene支援給不同的查詢詞設定不同的權重。設定權重使用“”符號,將“”放於查詢詞的尾部,同時跟上權重值,權重因子越大,該詞越重要。設定權重允許你通過給不同的查詢詞設定不同的權重來影響文件的相關性,比如:

jakarta apache
jakarta^4 apache
"jakarta apache"^4 "jakarta lucene"

在預設情況下,權重因子為1.

Term操作符
Boolean operators
布林操作符可以將多個Term合併為一個複雜的邏輯查詢。Lucene支援AND,
+,OR,NOT, -作為操作符號。注意,所有的符號必須為大寫。

MODULE:FrontNginx AND Parsed.status:403
"avaimg.nosdn.127.net" OR Parsed.status:403
NOT Parsed.status:200

+操作符規定在其後的Term必須出現在文件中,也就是查詢詞中的MUST屬性。
-操作符排除了包含其後Term的文件,跟NOT有點類似,如下:

+Parsed.status:200 -FileName:"nos_access.log"

Grouping
Lucene支援使用圓括號來將查詢表示式分組,這將在控制布林控制查詢中非常有用。

(Parsed.status:200 Parsed.status:206) AND "mail-online"

這種語法對消除歧義,確保查詢表示式的正確性具有很大的意義。

Field Grouping
Lucene支援對欄位用圓括號來進行分組,當我們要查詢status中含有“200”和“206”時,我們可以使用如下語法:

Parsed.status:(+200 OR 206)

Escaping Special Characters
Lucene支援轉義查詢中的特殊字元,以下是Lucene的特殊字元清單:

+ - && || ! ( ) { } [ ] ^ " ~ * ? : \

轉義特殊字元我們可以使用符號“\”放於字元之前。

轉自

(25條訊息) Kibana查詢語法使用手冊_白開水的部落格-CSDN部落格_kibana查詢語法
https://blog.csdn.net/u013958257/article/details/88567581