首页 > 其他分享 >Kibana查询语法使用手册【转】

Kibana查询语法使用手册【转】

时间:2023-04-13 17:33:58浏览次数:59  
标签:apple pear Kibana 查询 语法 字段 搜索 使用手册 nickname

阅读目录

速查
全文搜索
在搜索栏输入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、逻辑操作

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

 

复制代码
1、要搜索一个确切的字符串,即精确搜索,需要使用双引号引起来:path:”/app/logs/nginx/access.log”


2、如果不带引号,将会匹配每个单词:uid token


3、模糊搜索:path:”/app/~


4、* 匹配0到多个字符:*oken


5、? 匹配单个字符 : tok?n


6、+:搜索结果中必须包含此项 -:不能含有此项 什么都没有则可有可无: +token -appVersion appCode


7、运算符AND/OR/NOT必须大写:token AND uid ;token OR uid;NOT uid


8、允许一个字段值在某个区间([] 包含该值,{}不包含):@version:[1 TO 3]


9、组合查询:(uid OR token) AND version


10、转义特殊字符 + – && || ! ( ) { } [ ] ^ ” ~ * ? : \ 转义特殊字符只需在字符前加上符号\


11、分组(firstname:H* OR age:20) AND state:KS 先查询名字H开头年龄或者是20的结果,然后再与国家是KS的结合


12、firstname:(+H* -He*) 搜索firstname字段里H开头的结果,并且排除firstname里He开头的结果
复制代码

 

查询语法

回到顶部

全文搜索

单词

apple pear ,返回所有字段中包含单词apple或pear的文档

 

短语

"apple pear" ,返回所有字段中包含短语"apple pear"的文档

 

回到顶部

按字段搜索

一个字段

nickname:apple pear,返回nickname字段包含单词apple或pear的文档
nickname:"apple pear",返回username字段包含短语"apple pear"的文档

 

 

多个字段

name:jack AND nickname:"apple pear",返回name字段包含单词jack 并且 nickname字段包含短语"apple pear"的文档

 

回到顶部

通配符搜索

回到顶部

匹配单一字符

nickname:appl? ,返回nickname字段包含单词(appl+任意一个字符)的文档

 

回到顶部

匹配任意多个字符

nickname:app*e,返回nickname字段包含单词(以app开头,以e结尾)的文档

 

回到顶部

范围搜索

包括首尾

dt:["2016-06-25" TO "2016-08-25"],返回"2016-06-25"≤ dt ≤"2016-08-25"的文档

 

不包括首尾

dt:{"2016-06-25" TO "2016-08-25"},返回"2016-06-25"< dt <"2016-08-25"的文档

 

包括首或尾

dt:{"2016-06-25" TO "2016-08-25"],返回"2016-06-25"< dt ≤"2016-08-25"的文档

 

回到顶部

布尔搜索

AND

name:"jack ma" AND nickname:"apple pear pear",返回name字段包含"jack ma" 且 nickname字段包含"apple pear pear"的文档

 

OR

name:jack OR nickname:apple,返回name字段包含jack或nickname字段包含apple的文档

 

NOT

name:jack NOT nickname:"pear pear",返回name字段包含jack,nickname字段不包含"pear pear"的文档

 

回到顶部

分组搜索

(name:"jack chen" OR name:lucy ) AND  nickname:"apple pear",返回name字段包含"jack chen"或lucy,同时nickname字段包含"apple pear"的文档

name:("jack chen" NOT lucy ) AND  nickname:"apple pear",返回name字段包含"jack chen"不包含lucy,同时nickname字段包含"apple pear"的文档

 来源:https://www.cnblogs.com/paul8339/p/15727563.html

标签:apple,pear,Kibana,查询,语法,字段,搜索,使用手册,nickname
From: https://www.cnblogs.com/gaoyanbing/p/17315732.html

相关文章

  • 4、Markdown 强调语法
    Markdown强调语法通过将文本设置为粗体或斜体来强调其重要性。粗体(Bold)要加粗文本,请在单词或短语的前后各添加两个星号(asterisks)或下划线(underscores)。如需加粗一个单词或短语的中间部分用以表示强调的话,请在要加粗部分的两侧各添加两个星号(asterisks)。Markdown语法HTML......
  • Elasticsearch——》kibana操作索引:增删改查
    一、新建索引PUT/test_001{"settings":{"index":{"max_result_window":1000000},"analysis":{"analyzer":{"ik_max_word":{"tokenizer":"ik_max_......
  • django 1.8 官方文档翻译:2-1-1 模型语法
    模型模型是你的数据的唯一的、权威的信息源。它包含你所储存数据的必要字段和行为。通常,每个模型对应数据库中唯一的一张表。基础:每个模型都是django.db.models.Model的一个Python子类。模型的每个属性都表示数据库中的一个字段。Django提供一套自动生成的用于数据库访问的API;详......
  • Java基础语法
    Java基础语法注释、标识符、关键字注释注释并不会被执行,是给我们程序员看的书写注释是一个非常好的习惯Java注释的分类:单行注释://多行注释:/***/文档注释标识符标识符的作用用来表示变量名、类名、方法名、数组名和文件名等是一个有效的字......
  • Java基础语法
    注释、标识符、关键字注释注释并不会被执行,是给我们程序员看的书写注释是一个非常好的习惯Java注释的分类:单行注释://多行注释:/****/文档注释标识符标识符的作用用来表示变量名、类名、方法名、数组名和文件名等是一个有效的字符序列......
  • mysql insert|replace语法
    insert语法replace语法版权声明:本文所有权归作者!商业用途转载请联系作者授权!非商业用途转载,请标明本文链接及出处!赞成、反驳、不解的小伙伴,欢迎一起交流!......
  • helm模板文件chart编写语法
    一、简单介绍1、快速创建一个chart模板helmcreatemychartmychart├──charts├──Chart.yaml├──templates│  ├──deployment.yaml│  ├──_helpers.tpl│  ├──hpa.yaml│  ├──ingress.yaml│  ├──NOTES.txt│  ├─......
  • 3、Markdown 换行语法
    Markdown换行语法在一行的末尾添加两个或多个空格,然后按回车键,即可创建一个换行(<br>)。Markdown语法HTML预览效果Thisisthefirstline.Andthisisthesecondline.<p>Thisisthefirstline.<br>Andthisisthesecondline.</p>Thisisthefirstline......
  • OpenAI Translator Bob Plugin Bob for Mac上一款基于ChatGPT全局翻译、润色、语法修
    OpenAITranslatorBobPlugin一款可以在Bob进行即时翻译的插件。它基于OpenAI的GPT系列模型,能够提供高质量、准确的翻译服务。该插件支持多种语言的翻译,包括中文、英文、法语、德语、日语等。用户只需在页面中选中需要翻译的文本,然后点击插件图标即可进行翻译。此外,该插件......
  • Vue3 setup语法糖添加name属性
    1.安装插件vite-plugin-setup-extendnpmivite-plugin-setup-extend-D2.配置vite.config.tsimportvuefrom'@vitejs/plugin-vue'import{defineConfig}from'vite'//引入插件并使用importvueSetupExtendfrom'vite-plugin-vue-setup-extend�......