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

改善 Kibana 中的 ES|QL 编辑器体验

作者:来自 Elastic Marco Liberati

随着新的 ES|QL 语言正式发布,Kibana 中开发了一种新的编辑器体验,以帮助用户编写更快、更好的查询。实时验证、改进的自动完成和快速修复等功能将简化 ES|QL 体验。

我们将介绍改进 Kibana 中 ES|QL 编辑器体验背后的指导原则以及我们为实现该目标所做的工作。我们将介绍实时验证、改进的自动完成和快速修复等功能,这些功能都简化了 ES|QL 体验。

背景

自 Elastic 8.11 以来,Elastic 的新管道查询语言 ES|QL(Elasticsearch 查询语言)已提供技术预览,该语言可转换、丰富和简化数据调查。在 8.14 版中中,ES|QL 已经正式发布。ES|QL 由新的查询引擎提供支持,可提供高级搜索功能和并发处理,提高速度和效率,无论数据源和结构如何。通过在一个屏幕上创建聚合和可视化来加速解决方案,提供迭代、不间断的工作流程。

作为开发人员,学习一门新语言既是一个有趣的挑战,也是一个令人沮丧的场景。对于具有良好语法的查询语言,大量的文档和示例使其变得容易理解,但从文档示例的封闭花园转移到现实世界的查询可能会很有挑战性。

当作为开发人员采用一种新语言时,我感兴趣的是快速迭代并从反复试验环境跳转到文档,以检查有关语法、限制和注意事项的更深入的主题。

编写正确的 ES|QL 查询应该很容易

借助 ES|QL,我们希望为开发人员提供最佳体验,以推动现代 Web 编辑器可以提供的所有可能性。

因此,Kibana 中的 ES|QL 编辑器起着至关重要的作用,因为它是用户接触新语言的主要媒介之一。改善其用户体验对我们来说非常重要。

为了改善编辑器中的用户体验,我们确定了以下四个原则:

  1. 用户不需要记住有关索引/字段/策略/功能等的所有知识……
  2. 了解查询的问题应该只需几秒钟,而不是几分钟。
  3. 自动完成应该让用户轻松构建正确的查询。
  4. 不应该将错误归咎于用户,而应该由编辑器帮助修复错误。

尽早发现 ES|QL 错误(并修复它们)

在 8.13 中,Discover 中的 ES|QL 提供了一个完整的客户端验证引擎,可以在向 Elasticsearch 提交查询之前轻松发现潜在错误。

验证在输入时运行,并为查询的错误部分提供即时反馈:

展开后可以通过光标悬停在 ES|QL 编辑器中检查特定错误

验证对语法错误具有一定的弹性,并且仍然可以为查询不完整的用户提供有用的信息。

ES|QL 可以在多个点验证整个查询:根据需要收集错误并完整报告

作为一名在日常编码环境中习惯使用 IDE 的开发人员,我习惯使用快速修复菜单,该菜单提供有关如何解决常见问题(如拼写错误或使用错误引号)的建议。

Kibana 在后台使用 Monaco 编辑器,它是 VSCode 编辑器的较小版本,并且提供了一个界面,可以在 Web 上提供类似的功能。

已开发出初始快速修复功能,并且已支持一些基本建议:

新的 ES|QL 将利用内部知识提出对现有索引的快速修复

目前支持的快速修复列表包括:

  • 错误字段引用
  • 错误文字引用
  • 索引、字段(和元字段)、函数、策略拼写错误
  • ……后续版本中将添加更多内容

快速修复功能仍处于初始开发阶段,我们正在寻求反馈和增强请求。

更好的 ES|QL 自动完成

自发布以来,ES|QL 就已在 Kibana 编辑器中附带了基本的自动完成功能,该功能已经为首次使用的用户提供了一些有用的建议。

在 8.13 中,自动完成逻辑已重构,为用户提供了更好的反馈,利用了所有字段和函数类型,并深入了解了其在 Elasticsearch 中的 ES|QL 实现。

简而言之,这意味着从 8.13 开始,自动完成只会在之前未发现的许多场景中建议正确的 “事物”。

涵盖的功能列表(不一定完整)如下:

  • 建议正确的函数,即使在另一个函数中使用时也是如此:
ES|QL 自动完成功能知道哪些函数彼此兼容,即使嵌套

  • 为函数提出正确的参数,要么按类型过滤字段,要么提出正确的常量
自动完成功能可以帮助解决特定函数的特殊枚举问题,并直接列出所有函数

  • 知道何时引用或不引用字段/索引名称

新的自动完成功能试图通过应用多种上下文类型过滤器并利用对新语言语法的深入了解来减少用户在构建查询时必须记住的信息量。

提供更多上下文帮助

新的自动完成功能包含一项隐藏功能,即为任何建议提供完整的上下文帮助,尤其是带有示例的函数或命令。

自动完成功能可以根据需要为命令和函数提供带有示例的完整内联文档

在编辑器中获取更多信息的另一种有用方法是将鼠标悬停在查询的特定部分(如策略名称)上,以收集有关它的更多元数据信息。

上下文工具提示有助于快速总结具有相同基本信息的丰富政策

使用 ES|QL 充分利用你的数据

在这篇文章中,我们展示了一些新的 ES|QL Kibana 编辑器功能。总之,功能列表如下:

  • 用户在输入有关语法和/或无效查询语句的查询时可以立即获得反馈
  • 用户可以快速获得针对某些特定错误的修复建议
  • 索引、字段和策略会自动在正确的位置向用户建议
  • 帮助以完整的文档和示例的形式提供。

Elastic 邀请 SREs 和开发人员亲身体验此编辑器功能,并在他们的数据任务中开辟新视野。立即在 https://ela.st/free-trial 上试用。

本文中描述的任何特性或功能的发布和时间均由 Elastic 自行决定。任何当前不可用的特性或功能可能无法按时交付或根本无法交付。

Elasticsearch 包含许多新功能,可帮助你为你的用例构建最佳搜索解决方案。深入了解我们的示例笔记本以了解更多信息,开始免费云试用,或立即在你的本地机器上试用 Elastic。

原文:Improving the ES|QL editor experience in Kibana - Elasticsearch Labs


http://www.kler.cn/a/467784.html

相关文章:

  • 机器人手眼标定
  • 【insert 插入数据语法合集】.NET开源ORM框架 SqlSugar 系列
  • 打造三甲医院人工智能矩阵新引擎(二):医学影像大模型篇--“火眼金睛”TransUNet
  • 【JVM】总结篇-类的加载篇之 类的加载器 和ClassLoader分析
  • 如何通过API实现淘宝商品评论数据抓取?item_review获取淘宝商品评论
  • Vue3实现PDF在线预览功能
  • 智能工厂的设计软件 应用场景的一个例子: 为AI聊天工具添加一个知识系统 之20 再次重建 之5 项目文件三大部 整“拼”项目文档总述
  • vs 2022 中xml 粘贴为Class 中,序列化出来的xml 的使用
  • 九进制转10进制
  • Git 如何在IDEA中进行使用
  • SAP系统中的标准价、移动平均价是什么?有何区别?物料分类账的优点
  • 基于开发/发布/缺陷分离模型的 Git 分支管理实践20250103
  • Day3 微服务 微服务保护(请求限流、线程隔离、服务熔断)、Sentinel微服务保护框架、分布式事务(XA模式、AT模式)、Seata分布式事务框架
  • 【Redis经典面试题十】热key与大key的问题如何解决?
  • 简述 Spring 的 控制反转(IoC) 和 依赖注入(DI)
  • css 页面组件遮挡
  • 【从零开始入门unity游戏开发之——C#篇42】C#补充知识——随机数(Random)、多种方法实现string字符串拼接、语句的简写
  • 我用AI学Android Jetpack Compose之理解声明式UI
  • Jmeter-性能测试工具的安装教程
  • 计算机网络知识总结-网络安全
  • 如何单独安装 MATLAB 工具箱
  • 三甲医院等级评审八维数据分析应用(五)--数据集成与共享篇
  • 在swiftui中使用Alamofire发送请求获取github仓库里的txt文件内容并解析
  • 芯片引脚类型检测数据集VOC+YOLO格式582张5类别
  • 【小程序】5分钟快速入门抓包微信小程序
  • 短信通知在 IOS 17/18 中不起作用?这是修复方法