700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Kibana查询语法使用手册

Kibana查询语法使用手册

时间:2021-12-14 19:27:42

相关推荐

Kibana查询语法使用手册

引用自 /zhengchaooo/article/details/79500130

Kibana查询语法使用手册

速查全文搜索字段正则近似搜索范围搜索优先级分组字段分组转义特殊字符 简单查询1、范围查询2、逻辑操作3、分组4、转义特殊字符 Lucene语法简单说明TermsFields 模糊查询Term ModifiersFuzzy SearchesProximity Searches Range Searches优先级Term操作符Boolean operatorsGroupingField GroupingEscaping Special Characters

速查

全文搜索

在搜索栏输入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

字段分组

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、逻辑操作

ANDOR 例子:firstname:H* AND age:20firstname: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?ttest*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." OR Parsed.status:403NOT 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的特殊字符清单:

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

转义特殊字符我们可以使用符号“\”放于字符之前。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。