Kibana查询语言(KQL)AND、OR匹配,模糊匹配
一. 前言
现在大多数的公司都会使用ELK组合
来对日志数据的收集、存储和提供查询服务。ElasticSearch
+ Logstash
+ Kibana
。
查询数据库,如果是MySQL
,那么就需要使用MySQL
的语法;同样的,在Kibana
上查询数据,也需要使用Kibana
的语法,而Kibana
的查询语法叫做Kibana Query Language
,简称KQL
。
二. KQL简单介绍
KQL(Kibana Query Language),也就是在Kibana上面进行查询时使用的语法。
Kibana
中也可以使用Lucene
的查询语法,但是这里就不介绍了,可以参考https://www.elastic.co/guide/en/kibana/7.7/lucene-query.html
三. 使用索引匹配查询
在Kibana
中进行查询的时候,建议使用指定索引查询,这样的效率更高,而不建议使用全局查找的方式。
比如查找response
为200
的日志,那么就写为response:200
,这样去查找中response
值包含200
这个词的文档对象;
如果没有指定response
为200
,那么只是单纯的查找200
,那么可能会返回金额为200
的文档对象(假设有金额字段),查询的效率不高,同时也会返回一些不需要的数据;
四. Kibana查询语法
实例1
response:200
上面这个表达式,会查询出response
字段中包含200
的文档对象,注意是包含,包含的是200
这一个词,比如下面几种情况都会被查询出来
200
hello world 200
hello 200 world
需要注意的是1200
或者2001
,是不能被查出来的。
如果要查询1200
或者2001
,这种模糊匹配的,可以使用通配符,比如 response:*200
或者 response:200*
实例2
message:"hello world yes"
上面这个表达式,是针对message
字段进行搜索,在搜索的时候不会区分大小写,也就是说,Hello world YES
也是会被搜索出来的;
需要注意,上面的"hello world yes"
使用了引号,这样的话,这3个单词会被作为一个词进行查询,不会再进行分词,也就是说匹配的时候只会匹配hello world yes
这样的顺序匹配,而不会匹配出helllo yes world
;
实例3
message:hello world
上面这个表达式,针对message
字段进行搜索,搜索message
中包含hello
,或者包含world
,或者两者都包含的情况;
需要注意的是,不区分大小写,也不会保证顺序,也就是说,下面几种情况都会被匹配
hello
world
Hello
World
hello world
Hello world
hello yes World
yes world
world yes
实例4
name:jane or addr:beijing
上面这个查询条件,会查询name
字段包含jane
,或者addr
字段包含beijing
的记录,或者两者都匹配;
需要注意的是,or
表示 “或”
,不区分大小写;
实例5
name:jane and addr:beijing
上面这个条件,会查询name
字段包含jane
,且addr
字段包含beijing
的记录。
实例6
name:jane and addr:beijing or job:teacher
上面这个查询条件中,出现了and
和or
,需要记住的是,KQL
中,and
的优先级高于or
;
所以上面的查询条件,会查询name
包含jane
,且addr
包含beijing
的记录,或者job
包含teacher
的记录,可以使用括号来让上面的查询条件更好理解:
(name:jane and addr:beijing) or job:teacher
实例7
name:jane and (addr:beijing or job:teacher)
上面这个表达式,主要是想表明,可以使用括号来控制匹配的优先级。
实例8
response:(200 or 404)
上面这个表达式,会查询response
包含200
,或者response
包含404
,或者包含200
和404
的记录(不保证顺序、不区分大小写);
同时可以使用and
来表示 “且”
的关系。
实例9
not response:200
上面这个查询条件,会查询出response
字段中不包含200
的记录。
实例10
response:200 and not yes
上面这个查询条件,会查询response
包含200
,并且整条记录不包含yes
的数据记录;
实例11
response:(200 and not yes)
上面这个查询条件,会查询response
包含200
,且response
不包含yes
的记录。
实例12
response:*
上面这个查询条件,会返回所有包含response
字段的文档对象。
实例13
machine*:hello
上面这个查询条件,会查询machine1
字段,machine2
字段...machinexyzabc
字段包含hello
的数据记录,这里只是想表达,对于搜索的字段列,也是可以使用通配符的。
五.总结
KQL
还是比较简单地,主要记住KQL
匹配时是不区分大小写的,可以使用括号改变匹配优先级;
另外一个要点就是,匹配是 包含,某个字段“包含”某个词,而不是某个字段的值为某个词。
原文链接:https://www.cnblogs.com/-beyond/p/14159002.html
Kibana查询语言(KQL)AND、OR匹配,模糊匹配相关推荐
- Kibana 使用 KQL 查询语法-kibana 常用查询语法
Kibana 查询语言 (KQL) 是一种使用自由文本搜索或基于字段的搜索过滤 Elasticsearch 数据的简单语法. KQL 仅用于过滤数据,并没有对数据进行排序或聚合的作用. KQL 能够在 ...
- Kibana查询语言(KQL)
一.前言 现在大多数的公司都会使用ELK组合来对日志数据的收集.存储和提供查询服务,这里就不介绍什么是ELK了,只介绍一些EKL中的查询,也就是K(kibana). 查询数据库,如果是MySQL,那么 ...
- 模糊匹配 读音_onenote搜索机制详解②:两种搜索模式,模糊与精确匹配
先从纯文本搜索讲起,这是最基本也是最重要的. 从这篇开始,以及接下来连续几篇文章,都会介绍搜索的基础功能.注意,这几篇文章中谈论的都是基本的.正常的搜索功能,暂时不考虑Bug等因素. 在很多软件(例如 ...
- python selenium xpath_python+selenium十四:xpath和contains模糊匹配
xpath可以以标签定位,也可以@任意属性: 如:以input标签定位:driver.find_element_by_xpath("//input[@id='kw']") 如:@t ...
- JQuery 模糊匹配
[属性名称] 匹配包含给定属性的元素 [att=value] 匹配包含给定属性的元素 [att*=value] 模糊匹配 [at ...
- 正则表达式匹配所有script及其内容_VLOOKUP函数进阶用法:模糊一对多匹配之匹配带关键字的所有内容...
各位读者朋友们大家好,进入今天主题之前先给大家讲一个网络上的小段子,关于一个小伙子买药的故事: 我们段子里面小伙子说了一个胶囊属实是把医生给难住了,但是如果医生能够将包含胶囊二字的所有药品名罗列出来给 ...
- grep 模糊匹配_vim 的模糊查找插件 LeaderF 新功能介绍(二)
前言 本文介绍自<vim 的模糊查找插件 LeaderF 新功能介绍>以后,LeaderF增加的一些新的功能. 异步grep Leaderf rg 此功能已经在<vim的grep插件 ...
- hive like 模糊匹配
类似: 在MYSQL里面我们可以这样的执行SQLselect a.Community,a.PID,b.spidertime,b.comm,b.showings,b.room from lianjia_ ...
- Excel 中使用SQL 语句查询数据(七)-----用LIKE 运算符进行模糊匹配查询
这篇博文要和大家分享的是用LIKE 运算符进行模糊匹配查询下图数据源商品代号包含数字的数据. 我们用Microsoft query连接数据源,步骤请参考本系列第一篇博文.语句如下图 其中 LIKE ' ...
最新文章
- ASP.NET Core 1.1 Preview 1 简介(包含.NETCore 1.1升级公告)
- Android状态栏隐藏 ( 全屏 )
- python mysql ssh隧道_启用Python通过SSH隧道连接到MySQL
- Windows服务二:测试新建的服务、调试Windows服务
- 关于ckeditor的配置
- 2013中国微信公众平台用户研究报告
- Codeforces 505 A Mr. Kitayuta's Gift【暴力】
- 关于集异璧实验室(Geblab)
- 项目管理第九章项目资源管理
- ArcGIS的feature要素面积出现负值、要素集intersect求交集为null空的解决办法
- 【教程】MFC到Delphi的皮肤移植
- HTK安装实录(Ubuntu18.04)
- nginx负载接口与宕机切换
- 第一时间获取文章,可以关注本人公众号:月牙寂道长
- 南邮java实验_南邮JAVA程序设计实验4 线程程序设计(指针式时钟)
- Soft-NMS – Improving Object Detection With One Line of Code
- 2023英伟达显卡排名天梯图(已更新)
- python geometry用法_Python geometry.MultiPolygon方法代码示例
- 【AI达人创造营第二期】基于Jetson nano的餐厅自助结账系统部署
- 你知道什么是 a站、b站、c站、d站、e站、f站、g站、h站、i站、j站、k站、l站、m站、n站…z 站吗 ?...
热门文章
- 识别电路板上贴片电阻型号0805 0402 0603 1206封装信息
- Foxmail中加入Gmail邮箱。对“:ssl连接错误, errorCode:”的修复。
- Python 数据分析微专业课程--项目06 城市餐饮店铺选址分析
- AE基础教程(1)——第1章 影视后期专业导论
- tplink打印机服务器重置,TP-Link TL-WDR7500无线路由器如何打造打印机共享服务器
- 打造新圣魔大战简体中文终极版(H补丁、不能安装、运行问题)
- 动态生成多条插入语句 存入文本文档中
- Python语言程序设计(MOOC崇天)第三章基本数据类型学习笔记(天天向上的力量+文本进度条)
- 光盘如何重装系统教程
- 我用 pyhton 做了款可开淘宝店赚钱的工具