Kibana使用之Lucene的語法查詢

轉(zhuǎn)載地址

Kibana使用之Lucene的語法查詢

Kibana使用的查詢語法是Lucene的查詢語法,這里在使用Kibana的同事一定要注意,不然,在進(jìn)行搜索的時候,你會抓狂的。
下面了解下Lucene的查詢語法,了解了Lucene的查詢語法也就知道了改如何使用Kibana的使用方式
Lucene查詢語法以可讀的方式書寫,然后使用JavaCC進(jìn)行詞法轉(zhuǎn)換,轉(zhuǎn)換成機器可識別的查詢。

詞語查詢,語法如下

"here","there"
"here,there"

字段查詢,語法如下

tag:there
tag:"there are"

搜索語句是需要加上雙引號,否則

tag:there are

就意味著,搜索tag為there,或者包含are關(guān)鍵字的文檔

修飾符查詢,通過增加修飾,從而擴大查詢的范圍。

通配符一般包括如下

?:匹配單個字符
*:匹配0個或多個字符

語法如下

?tere

意味著搜索there、where等類似的文檔

test*

意味著搜索test、tests、tester

模糊詞查詢,就是在詞語后面加上符號~。語法如下

he~

意味著搜索her或hei等詞
也可以在~后面添加模糊系數(shù),模糊系數(shù)[0-1],越靠近1表示越相近,默認(rèn)模糊系數(shù)為0.5。語法如下

he~0.8

鄰近詞查詢,語法如下

"here there"~10

代表搜索包含"here","there"的文檔,這兩個詞中間可以有一部分內(nèi)容(這部分的內(nèi)容通過字符個數(shù)顯示)
能夠匹配到結(jié)果的如下

"here wowo wowo there"
"here,wowow,wowow,there"

范圍查詢,可以指定最大值和最小值,會自動查找在這之間的文檔。如果是單詞,則會按照字典順序搜索。

{}尖括號表示不包含最小值和最大值,可以單獨使用
[]方括號表示包含最小值和最大值,可以單獨使用。如下:

如果搜索成績grade字段小于等于80分,大于60分的
可以寫成下面的方式

grade:{60,80]

如果搜索name在A和C之間的,可以使用如下的語法

name:{A,C}

詞語相關(guān)度查詢

如果單詞的匹配度很高,一個文檔中或者一個字段中可以匹配多次,那么可以提升該詞的相關(guān)度。使用符號^提高相關(guān)度。

提高jarkarta的比重
jakarta apache
可以采用下面的語法:

jakarta^4 apache

布爾操作符

支持多種操作符:

AND

AND操作符用于連接兩個搜索條件,僅當(dāng)兩個搜索條件都滿足時,才認(rèn)為匹配。通常用來做交集操作。也可以使用&&替換。
注意必須使用大寫。如果不使用AND,而是and,可能會被單做關(guān)鍵詞進(jìn)行搜索!

例如:搜索同時包含a和b的文檔

a AND b

或者

a && b

OR

OR操作符用于連接兩個搜索條件,當(dāng)其中一個條件滿足時,就認(rèn)為匹配。通常用來做并集操作。也可以使用||替換。注意必須使用大寫。

例如:搜索包含a或者b的文檔

a OR b

或者

a || b

NOT

NOT操作符排除某個搜索條件。通常用來做差集操作也可以使用!替換。注意必須大寫。

例如:搜索包含a,不包含b的文檔

a NOT b

或者

a && !b

在kibana中支持單獨使用,如:排除包含test的文檔

NOT test

+(加號)

包含該操作符后跟著的搜索條件,如:搜索包含tom的文檔

+tom

作用和AND的差不多,但是支持單獨使用

-(減號)

排除該操作符后跟著的搜索條件,如:搜索不包含tom的文檔

-tom

效果類似NOT

分組

支持使用小括號對每個子句進(jìn)行分組,形成更為復(fù)雜的查詢邏輯。
例如:要搜索包含a的文檔中,也包含b或者c的

a AND (b OR c)

也支持在字段中使用小括號。如:要搜索標(biāo)題中,既包含a也包含b的

title:(+a +"b")

轉(zhuǎn)義字符

由于Lucene中支持很多的符號,如

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

因此如果需要搜索 (1+1):2 需要對改串進(jìn)行轉(zhuǎn)換,使用字符\。

\(1\+1\)\:2

參考文檔:
http://www.cnblogs.com/xing901022/p/4974977.html
https://segmentfault.com/a/1190000002972420

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容