当前位置: 首页 > news >正文

Kibana搜索数据利器:KQL与Lucene

文章目录

  • 一、搜索数据
  • 二、KQL查询
    • 1、字段搜索
    • 2、逻辑运算符
    • 3、通配符
    • 4、存在性检查
    • 5、括号
  • 三、Lucene查询
    • 1、字段搜索
    • 2、逻辑运算符
    • 3、通配符
    • 4、范围搜索
    • 5、存在性检查
    • 6、括号
  • 四、总结

一、搜索数据

默认情况下,您可以使用 Kibana 的标准查询语言,该语言具有自动完成功能和简单易用的语法。Kibana 的旧查询 语言(基于 Lucene 查询语法) 目前在查询栏中的选项菜单下仍然可用。当这个 选择传统查询语言,也可以使用完整的基于 JSON 的 Elasticsearch 查询 DSL。

提交搜索请求时,直方图、文档表和字段 列表将更新以反映搜索结果。默认情况下,匹配以反向列出 按时间顺序排列,最先显示最新文档。您可以反转 通过单击“时间”列标题来排序顺序。

二、KQL查询

Kibana Query Language(KQL)是一种用于在Kibana中进行搜索和过滤数据的查询语法

1、字段搜索

使用field:value的格式来搜索特定字段中的值。

例如,level:DEBUG,将返回level包含DEBUG的文档。
在这里插入图片描述

2、逻辑运算符

逻辑运算符:KQL支持逻辑运算符AND、OR和NOT来组合多个条件。

例如,level:DEBUG or level:Info,将返回level包含DEBUG或info的文档,不区分大小写。
在这里插入图片描述

3、通配符

通配符:使用*作为通配符来匹配任意字符。

例如,tid:*6199,将返回以"6199"结尾的tid的文档。
在这里插入图片描述

4、存在性检查

存在性检查:使用field:*来检查字段是否存在。

例如,@timestamp:*将返回具有`@timestamp字段的文档。
在这里插入图片描述

5、括号

括号:使用括号来分组条件。

例如,@timestamp:"2023-12-14T06:55:32.548Z" and (level:info or level:DEBUG)将返回指定时间的level是info 或DEBUG的文档。
在这里插入图片描述

三、Lucene查询

Kibana的旧查询语言基于 Lucene 查询语法。目前,此语法 在查询栏和高级设置中的选项菜单下仍然可用。

1、字段搜索

字段搜索:使用field:value的格式来搜索特定字段中的值。

例如,level:DEBUG,将返回level包含DEBUG的文档。
在这里插入图片描述

2、逻辑运算符

逻辑运算符:Lucene支持逻辑运算符AND、OR和NOT来组合多个条件。

例如,level:DEBUG or level:Info,将返回level包含DEBUG或info的文档,不区分大小写。
在这里插入图片描述

3、通配符

通配符:使用*作为通配符来匹配任意字符。

例如,tid:*0001,将返回以"0001"结尾的tid的文档。
在这里插入图片描述

4、范围搜索

范围搜索:使用field:[start TO end]的格式来搜索字段中的范围。

例如,log.offset:[82194291 TO 82194500]将返回log.offset在82194291到82194500之间的文档。
在这里插入图片描述

5、存在性检查

存在性检查:使用field:*来检查字段是否存在。

例如,@timestamp:*将返回具有`@timestamp字段的文档。在这里插入图片描述

6、括号

括号:使用括号来分组条件。

例如,@timestamp:"2023-12-14T07:06:40.472Z" AND (level:info OR level:DEBUG)将返回指定时间的level是info 或DEBUG的文档。
在这里插入图片描述
和KQL语法有区别,条件AND、OR需要大写

四、总结

KQL(Kibana Query Language)和Lucene查询语法在一些方面有一些区别:

语法结构:KQL使用更简洁和易于理解的语法结构,更接近自然语言,使得查询更易于编写和阅读。而Lucene查询语法则更为底层和灵活,需要更多的语法知识和操作。

功能支持:KQL在Kibana中内置了一些特定的功能,如直接在编辑器窗口中生成和编辑代码、支持自动调试和代码库全局理解等。而Lucene查询语法则更通用,可以更灵活地构建复杂的查询。

可扩展性:Lucene查询语法在Elasticsearch中更为底层,可以支持更多高级的查询操作和功能。而KQL是Kibana特定的查询语言,功能相对较为有限。

学习曲线:由于KQL的语法更简洁和易于理解,学习和使用起来相对较为容易。而Lucene查询语法需要更多的语法知识和经验,学习曲线相对较陡。

总的来说,KQL更适合在Kibana中进行简单和常见的搜索和过滤操作,而Lucene查询语法则更适合在Elasticsearch中进行更复杂和高级的查询操作。

详细可以参考官方文档

http://www.lryc.cn/news/260055.html

相关文章:

  • float32、int8、uint8、int32、uint32之间的区别
  • 百度搜索展现服务重构:进步与优化
  • icmp协议、ip数据包 基础
  • es6从url中获取想要的参数
  • 【elementui笔记:el-table表格的输入校验】
  • 每天五分钟计算机视觉:GoogLeNet的核心模型结构——Inception
  • 卡片C语言(2021年蓝桥杯B)
  • 数据库动态视图和存储过程报表数据管理功能设计
  • css+js 选项卡动画效果
  • [C错题本]转义字符/指针与首元素/运算
  • Layui继续学习
  • react+datav+echarts实现可视化数据大屏
  • CSS新手入门笔记整理:CSS浮动布局
  • 微服务组件Sentinel的学习(1)
  • 小程序 -网络请求post/get
  • Elasticsearch 8.10之前同义词最佳实践
  • 芯知识 | 什么是OTP语音芯片?唯创知音WTN6xxx系列:低成本智能语音解决方案
  • Linux内核密钥环
  • web前端之正弦波浪动功能、repeat、calc
  • 使用工具 NVM来管理不同版本的 Node.js启动vue项目
  • Xcode编写基于C++的动态连接库(dylib)且用node-ffi-napi测试
  • WPF-UI HandyControl 简单介绍
  • golang学习笔记——数据结构进阶
  • TrustZone之总线请求
  • vue2+Echarts数据可视化 【帕累托图】
  • imazing 2.17.16中文版怎么备份iPhone手机照片
  • 05 python数据容器
  • 相机倾斜棋盘格标定全记录 vs200+opencv安装
  • QT- QT-lximagerEidtor图片编辑器
  • PyQt 如何通过连续点击托盘图标显示隐藏主窗口并且在主窗口隐藏时调整界面到托盘图标附近