Kibana中KQL的使用

Kibana中KQL的使用文章目录前言筛选语法简单查询条件运算符逻辑运算符通配符字段嵌套查询总结可能排版更好看一点的原博链接 Kibana 中 KQL 的使用前言当我们需要查看 ElasticSearc 中存放的数据时 通常会使用 Kibana 这个可视化工具 但是 Kibana 中的 Discover 页面默认只会展示最近收到的数据 当我们需要查询符合某个条件数据时 就需要用到 KQL KibanaQueryL 了 没有接触之前觉得高大上 看完之后才发现设计如此简单 英文还可以的同学可以直接看官方文档 结

可能排版更好看一点的原博链接: Kibana中KQL的使用

前言

筛选语法

将所有涉及到的语法铺展开来,首先准备好官网文档中的数据如下:

{ 
     "grocery_name": "Elastic Eats", "items": [ { 
     "name": "banana", "stock": "12", "category": "fruit" }, { 
     "name": "peach", "stock": "10", "category": "fruit" }, { 
     "name": "peach test", "stock": "10", "category": "fruit" }, { 
     "name": "carrot", "stock": "9", "category": "vegetable" }, { 
     "name": "broccoli", "stock": "5", "category": "vegetable" } ] } 

需要根据实际情况做尝试的时候进入 Kibana 的 Discover页面在输入框中填入筛选即可。

Kibana中KQL的使用

生产环境截图不便还请谅解 ?

简单查询

简单查询就是 关键字匹配、字符串包含等,比如说如下语句会找出 name 字段是 banana 的所有数据:

name: banana 

但是如果 name 包含 peachpeach test,然后下面两个语句查出来会是两个结果。

name: peach test 

上述查询会将 name 是 peach 和 name 是 peach test 的都给查出来

name: "peach test" 

上述查询只会将 peach test 查出来,因为如果不加引号会自动关键字分词,将包含该关键字的所有数据匹配出来。

条件运算符

条件运算符就是 > >= < <=,在 KQL 里边都支持,使用也很简单,比如如下语句表示 age 字段大于等于 10。

age >= 10 

逻辑运算符

查询语言自然少不了逻辑运算符 与或非,在 KQL 中代表了 and or not

and 的用法:

age >= 10 and age < 100 

上述语句表示查询出 age 在 10 到 100 的左开右闭区间中的所有数据。

or 的用法:

name: "Jeff" or name: "Kitty" 

上述语句表示筛选出 name 包含 Jeff 或者 Kitty 关键字的所有数据。

not 的用法:

not age >= 10 

上述语句表示筛选出 age 小于 10 的所有数据。

其中 and 的优先级比 or 的高

age < 100 or name: wang and age >= 10 

and 优先级高会先结合,所以意思是 满足 name 是wang age >= 10 或者 age < 100。

当然也可以通过小括号来改变优先级,比如:

(age < 100 or name: wang) and age >= 10 

意思是 age >=10 并且这条数据的 name是wang或者age < 100

同一字段运算符简写

可以用括号将多个逻辑运算符和条件合并到一起

age = 10 or age = 100 # 等价于 age: ( 10 or 100) 

通配符

通配符可以用于查找出存在某个key的数据

name: * 

表示查找出所有带 name 字段的数据

system: win* 

可以匹配到 system: win7,system: win10 等。

字段嵌套查询

首先准备一个多层的数据,比如下面的这几条数据。

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

比如想筛选 level1.level2.prop1 是 foo 或者是 baz的,可以这样写:

level1.level2 { prop1: "foo" or prop1: "baz" } 

总结

KQL是一个比较简单筛选数据的查询语言,包括条件、逻辑、多层查询等用法,能辅助报表的制作和实时日志的筛选。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220288.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午8:49
下一篇 2026年3月17日 下午8:49


相关推荐

  • sublime激活码2021【在线注册码/序列号/破解码】

    sublime激活码2021【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日
    167
  • echarts+vue_vue安装echarts

    echarts+vue_vue安装echarts1.安装cnpminstallecharts-wordcloud2.创建模板组件WordCloudChart<template><div:id=”id”:style=”{height:height,width:width}”/></template><script>importechartsfrom”echarts/lib/echarts”;importresizefrom”@/m

    2022年10月9日
    4
  • Kubernetes搭建spinnaker服务

    Kubernetes搭建spinnaker服务背景 2017 2018 年左右的吧 不记得看什么了看到了 spinnaker 但是当时真的安装不起来 各种被墙裂 2020 年底学习了泽阳大佬的 spinnaker 实践课程 通过 Halyard 方式搭建了 spinnaker 的集群 并与 jenkinsgitla 完成了集成 2021 年初稍微玩了一下 就去整别的事情去了 没有能应用于线上环境 下半年了 jenkinsk8s 这些的流程现在基本都是清晰了 想把 cd 从 jenkins 中剥离出来教给 spinnaker 了 就重新温习一下 spinnak

    2025年12月2日
    6
  • Oracle面试题

    Oracle面试题面试题 1 分析 从要求的结果中可以看出 最后一列的数是和上一列斜对着的主要用到了相关子查询 selectt1 id t1 name t1 money selectt2 moneyfromtes id t2 id 1 MONEY1fromte 面试题 2 这里用到了组函数 wm concat varchar2 instr 函数

    2026年3月27日
    3
  • MyBatis标签详解「建议收藏」

    MyBatis标签详解「建议收藏」MyBatis标签详解

    2022年4月22日
    64
  • autossh原理解析

    autossh原理解析authssh 用来帮助 ssh 程序在中断后自动重连 在建立隧道的场合相当好用 它是怎么检测链路的呢 我们先来看一下它的使用方法 autossh V Mport echo port f SSH OPTIONS 举例 autossh M10001 10002 N R10000 127 0 0 1 22example com 这个例子的意思是 执行 ss

    2026年3月18日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号