Kibana 查询语言 (KQL) 是一种使用自由文本搜索或基于字段的搜索过滤 Elasticsearch 数据的简单语法。 KQL 仅用于过滤数据,并没有对数据进行排序或聚合的作用。

KQL 能够在您键入时建议字段名称、值和运算符。 建议的性能由 Kibana 设置控制。

KQL 具有与 Lucene 查询语法不同的一组特性。 KQL 能够查询嵌套字段和脚本字段。 KQL 不支持正则表达式或使用模糊术语进行搜索。 要使用旧版 Lucene 语法,请单击搜索字段旁边的 KQL,然后关闭 KQL。

术语查询编辑
术语查询使用精确的搜索术语。 空格分隔每个搜索词,并且只需要一个词来匹配文档。 使用引号表示词组匹配。

要使用精确的搜索词进行查询,请输入字段名称,后跟:,然后输入以空格分隔的值:

http.response.status_code:400 401 404
对于文本字段,这将匹配任何值,而不管顺序如何:
http.response.body.content.text:quick brown fox

要查询确切的短语,请在值周围使用引号:

http.response.body.content.text:"quick brown fox"

KQL 不需要字段名称。 如果未提供字段名称,则术语将与索引设置中的默认字段匹配。 要跨字段搜索:

"quick brown fox"

布尔查询

KQL 支持 or、and 和 not。 默认情况下,and 的优先级高于 or。 要覆盖默认优先级,请将括号中的运算符分组。 这些运算符可以是大写或小写。

要匹配响应为 200、扩展名是 php 或两者兼有的文档:

response:200 or extension:php

要匹配响应为 200 且扩展名为 php 的文档:

response:200 and extension:php

匹配响应为 200 或 404 的文档。

response:(200 or 404)

要匹配响应为 200 且扩展名是 php 或 css 的文档:

response:200 and (extension:php or extension:css)

要匹配响应为 200 且扩展名为 php 或扩展为 css 且响应为任何内容的文档:

response:200 and extension:php or extension:css

要匹配响应不是 200 的文档:

not response:200

匹配响应为 200 但扩展名不是 php 或 css 的文档。

response:200 and not (extension:php or extension:css)

要匹配包含术语列表的多值字段:

tags:(success and info and security)

范围查询

KQL 支持数字和日期类型的 >、>=、< 和 <=。

account_number >= 100 and items_sold <= 200

日期范围查询

​​​
通常,Kibana 的时间过滤器足以设置时间范围,但在某些情况下,您可能需要搜索日期。 在引号中包含日期范围。

@timestamp < "2021-01-02T21:55:59"
@timestamp < "2021-01"
@timestamp < "2021"

​​KQL 支持日期数学表达式。

@timestamp < now-1d
updated_at > 2022-02-17||+1M/d

是否存在查询

存在查询匹配包含任何字段值的文档,在本例中为响应:

response:*

Existence 由 Elasticsearch 定义,包括所有值,包括空文本。

通配符查询

​​​
通配符查询可用于按字词前缀搜索或搜索多个字段。 出于性能原因,Kibana 的默认设置会阻止前导通配符,但这可以通过高级设置来允许。

要匹配 machine.os 以 win 开头的文档,例如“windows 7”和“windows 10”:

machine.os:win*

要匹配多个字段:

machine.os*:windows 10

当您拥有字段的文本和关键字版本时,此语法很方便。 该查询会检查 machine.os 和 machine.os.keyword 中是否存在术语 windows 10。

嵌套字段查询

​​​
查询嵌套字段的一个主要考虑因素是如何将嵌套查询的部分内容与单个嵌套文档进行匹配。 你可以:

仅将部分查询匹配到单个嵌套文档。 这是大多数用户在查询嵌套字段时想要的。
将部分查询匹配到不同的嵌套文档。 这就是常规对象字段的工作方式。 此查询通常不如匹配单个文档有用。
在以下文档中,items 是一个嵌套字段。 嵌套字段中的每个文档都包含名称、库存和类别。

​​​

{"grocery_name": "Elastic Eats","items": [{"name": "banana","stock": "12","category": "fruit"},{"name": "peach","stock": "10","category": "fruit"},{"name": "carrot","stock": "9","category": "vegetable"},{"name": "broccoli","stock": "5","category": "vegetable"}]
}
匹配单个文档

要匹配库存超过 10 个香蕉的商店:

items:{ name:banana and stock > 10 }
items 是嵌套路径。 花括号(嵌套组)内的所有内容都必须匹配单个嵌套文档。以下查询不返回任何匹配项,因为没有单个嵌套文档具有库存为 9 的香蕉。
items:{ name:banana and stock:9 }

匹配不同的文档

以下子查询位于单独的嵌套组中,可以匹配不同的嵌套文档:

items:{ name:banana } and items:{ stock:9 }

name:banana 匹配数组中的第一个文档,stock:9 匹配数组中的第三个文档。

匹配单个和不同的文档
要查找拥有 10 多种香蕉且还备有蔬菜的商店:

items:{ name:banana and stock > 10 } and items:{ category:vegetable }

第一个嵌套组(名称:banana 和 stock > 10)必须匹配单个文档,但 category:vegetables 子查询可以匹配不同的嵌套文档,因为它位于单独的组中。

其他嵌套字段中的嵌套字段
KQL 支持其他嵌套字段中的嵌套字段——您必须指定完整路径。 在本文档中,level1 和 level2 是嵌套字段:

{"level1": [{"level2": [{"prop1": "foo","prop2": "bar"},{"prop1": "baz","prop2": "qux"}]}]
}

要匹配单个嵌套文档:

level1.level2:{ prop1:foo and prop2:bar }

Kibana 使用 KQL 查询语法-kibana 常用查询语法相关推荐

  1. MongoDB 查询语法与常用查询语句总结

    MongoDB 常用查询语句总结 先来一波查询语句语法的基本解释: 列子: db.mycol.find({"likes": {$gt:10}, $or: [{"by&qu ...

  2. mysql筛选字符个数为8的_听说Mysql你很豪横?-------------分分钟带你玩转SQL高级查询语句(常用查询,正则表达式,运算符)...

    一 . 常用查询介绍 1.创建表结构并插入内容 创建一个表 里面有id 毕业院校 家庭住址 name mysql> create table gou(id int primary key,sch ...

  3. mysql alter user语法_mysql 常用命令语法

    登录到mysql client 以windows下为例,打开cmd命令窗口,进入到mysql安装目录bin目录下,首先要启动mysql服务,执行命令: net start mysql,这里不需要分号. ...

  4. hibernate中查询方式(二):常用查询

    Collection(集合) 列出所有有学生参加的项目:(项目的学生的数量大于0,则表示有学生参加) public void testCollection() throws Exception {Se ...

  5. css语法,常用css语法,内部样式表,外部样式表,内联样式表, 样式优先级问题

    1.css语法: 2.css常用属性: 3.内部样式表: 在head标签中书写style标签,然后在style标签中书写css,style标签具有type属性,属性值为"text/css&q ...

  6. Kibana常用查询命令

    1.获取所有数据 # 默认情况下,es一次展示10条数据,通过from和size来控制分页 # 索引goods的查询 GET goods/_search {"query": {&q ...

  7. 用Kibana和logstash快速搭建实时日志查询、收集与分析系统

    Logstash是一个完全开源的工具,他可以对你的日志进行收集.分析,并将其存储供以后使用(如,搜索),您可以使用它.说到搜索,logstash带有一个web界面,搜索和展示所有日志. kibana ...

  8. ELK学习2_用Kibana和logstash快速搭建实时日志查询、收集与分析系统

    Logstash是一个完全开源的工具,他可以对你的日志进行收集.分析,并将其存储供以后使用(如,搜索),您可以使用它.说到搜索,logstash带有一个web界面,搜索和展示所有日志. kibana ...

  9. Solr常用查询语法笔记

    1.常用查询 q - 查询字符串,这个是必须的.如果查询所有*:* ,根据指定字段查询(Name:张三 AND Address:北京) fq - (filter query)过虑查询,作用:在q查询符 ...

最新文章

  1. 函数的参数-列表使用+=本质上是调用extend方法
  2. python概念英文版_python重要概念
  3. 开发文档模板_需求文档模板一堆什么样的适合你呢?
  4. “70后”清华教授,任大学校长
  5. 计算机图形学(一) 视频显示设备_3_随机扫描显示器
  6. xampp修改mysql的默认空密码
  7. mysql高性能sql引擎剖析_Oracle+高性能SQL引擎剖析:SQL优化与调优机制详解-笔记之执行计划(一)...
  8. Tapestry5的喜爱.
  9. shell 小米system锁adb_小米解锁Bootloder和system分区,获取完整root
  10. 微信公众平台开发概述
  11. 筛选尚未注册的域名查询工具
  12. 笔记本插入耳机没反应 必须重启前插入再启动才行 启动后拔下再插入依旧外放
  13. 优秀自律的人手机上都装了些什么app?看完你就懂了!
  14. 特斯拉Model X使用的是新密钥在几分钟内就被破解了
  15. 「镁客早报」屠呦呦入选“20世纪最伟大人物”;四部门联合治理APP违法收集使用个人信息... 1
  16. 四阶龙格库塔法的基本思想_请问用四阶龙格库塔法解二阶微分方程的思想是什么?...
  17. 计算机网络自顶向下方法课程实验一华为三层交换机路由器配置静态路由
  18. 百度统计js-api
  19. KCP原理与源码解析
  20. Html 和 Css 的关系(复习笔记)

热门文章

  1. A connection attempt failed because the connected party did not properly respond after a period of……
  2. echarts地图/中国
  3. word参考文献交叉引用的多项引用,改逗号和破折号形式
  4. 光电设计竞赛国赛经历及感悟
  5. 打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。
  6. RT-Thread 入门学习笔记 - 熟悉邮箱rt_mailbox的使用
  7. Android 路径(Path)与剪裁(Clipping)详解
  8. mysql5.1为什么programdata文件夹里只有frm文件
  9. 数字IC设计学习笔记_静态时序分析STA_伪路径False Paths
  10. Mongodb学习(1)安装以及配置