改善 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/948736.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【深度学习入门_基础篇】线性代数本质

开坑本部分主要为基础知识复习,新开坑中,学习记录自用。 学习目标: 熟悉向量、线性组合、线性变换、基变换、矩阵运算、逆函数、秩、列空间、零空间、范式、特征指、特征向量等含义与应用。 强烈推荐此视频: 【官方双语/合集】…

【SpringBoot】当 @PathVariable 遇到 /,如何处理

1. 问题复现 在解析一个 URL 时,我们经常会使用 PathVariable 这个注解。例如我们会经常见到如下风格的代码: RestController Slf4j public class HelloWorldController {RequestMapping(path "/hi1/{name}", method RequestMethod.GET)publ…

VBA(Visual Basic for Applications)编程|excel|一系列网址或文件路径快速转换为可点击的超链接

很多时候,我们需要把导入的数据某一列转换成超链接,比如URL形式的列。 那么,大批量的情况下,无疑一个个手动点击是非常愚蠢的办法,这个时候我们就需要VBA编程来编写宏,通过编写宏来简化这些手动操作并不现…

小程序开发全解析 快速构建高效应用的核心指南

内容概要 小程序开发是当前数字世界中炙手可热的领域,吸引了无数开发者和企业的关注。随着技术的进步,小程序成为了提升用户体验、增强品牌曝光以及增加客户互动的重要工具。了解小程序的基本概念,就像是打开了一扇通往新世界的大门。 在这…

SQL—Group_Concat函数用法详解

SQL—Group_Concat函数用法详解 在LC遇见的一道很有趣的SQL题,有用到这个函数,就借这道题抛砖引玉,在此讲解一下group_concat函数的用法。🤣 GROUP_CONCAT([DISTINCT] expression [ORDER BY expression] [SEPARATOR separator])…

Edge Scdn的应用场景有哪些?

酷盾安全Edge Scdn 具备强大的安全防护能力,通过多层防御机制,如防火墙、DDoS 攻击防护、入侵检测和防御、数据加密等,有效抵御各种网络攻击,包括 DDoS 攻击、CC 攻击、SQL 注入攻击、XSS 跨站脚本攻击等,保障网站和应…

流光效果

1、流光效果是什么 在 Unity Shader 中的流光效果是一种动态的视觉效果,通常用于给材质增加一种闪光或光线移动的效果,使物体表面看起来像是有光在流动。这种效果常用于武器光效、能量护盾、传送门等等,可以让物体看起来更加生动富有科技感 …

滑动窗口——串联所有单词的子串

一.题目描述 30. 串联所有单词的子串 - 力扣(LeetCode) 二.题目解析 题目前提:s是一个字符串,words是一个字符串数组,里面所有的字符串的长度都是相等的。 题目要求:找到s中的一段连续的子串&#xff0…

【微软,模型规模】模型参数规模泄露:理解大型语言模型的参数量级

模型参数规模泄露:理解大型语言模型的参数量级 关键词: #大型语言模型 Large Language Model #参数规模 Parameter Scale #GPT-4o #GPT-4o-mini #Claude 3.5 Sonnet 具体实例与推演 近日,微软在一篇医学相关论文中意外泄露了OpenAI及Claud…

SpringBoot Maven 项目 pom 中的 plugin 插件用法整理

把 SpringBoot Maven 项目打包成 jar 文件时,我们通常用到 spring-boot-maven-plugin 插件。 前面也介绍过,在 spring-boot-starter-parent POM 和 spring-boot-starter POM 中都有插件的管理,现在我们就撸一把构建元素中插件的用法。 一、…

UE5AI感知组件

官方解释: AI感知系统为Pawn提供了一种从环境中接收数据的方式,例如噪音的来源、AI是否遭到破坏、或AI是否看到了什么。 AI感知组件(AIPerception Component)是用于实现游戏中的非玩家角色(NPC)对环境和其…

【数据仓库】hive on Tez配置

hive on Tez 搭建 前提是hive4.0hadoop3.2.2数仓已搭建完成,现在只是更换其执行引擎 为Tez。搭建可参考【数据仓库】hive hadoop数仓搭建实践文章。 Tez 下载 下载地址 https://archive.apache.org/dist/tez/ 官网地址 https://tez.apache.org/releases/apac…

finereport动态数据源插件教程2

场景: 模板中有多个数据集,只需要其中一个数据集按照不同的参数显示不同数据库的数据。 模板制作: 两个数据集ds1,ds2,ds1的绑定到参数面板的下拉框上,ds2显示到模板正文中,现在需要ds1根据不同…

Java通过谷歌邮箱Gmail直接发送邮件的三种方式

错误 Connected to the target VM, address: 127.0.0.1:52082, transport: socketException in thread "main" javax.mail.MessagingException: Got bad greeting from SMTP host: smtp.gmail.com, port: 587, response: [EOF] at com.sun.mail.smtp.SMTPTransp…

WSDM 2025 | 时间序列(time series)论文总结

AWSDM 2025于2025年3月10号到14号在德国汉诺威举行(Hannover, Germany) 本文总结了WSDM 2024有关时间序列(time series)的相关论文,如有疏漏,欢迎大家补充。(没有时空数据相关的论文&#xff0…

反直觉导致卡关-迫击炮谜题

这个谜题,在两周目中先后卡了我至少三个小时,先后缓慢装填并发射迫击炮弹尝试了数百次。 一周目卡了很久,稀里糊涂的过了,想不到二周目还会卡那么久。 研究了很多播主的攻略,但还是一头雾水, 直到分析其…

庐山派K230学习日记4 PWM控制

1 本节介绍​ 📝本节您将学习如何通过将K230开发板的GPIO引脚复用为PWM功能并输出PWM信号;实现输出PWM信号及控制板载无源蜂鸣器发出声音。 🏆学习目标 1️⃣如何将GPIO引脚配置为PWM模式,通过40Pin排针中的部分引脚来输出PWM信号…

c语言的文件操作与文件缓冲区

目录 C语言文件操作函数汇总 简单介绍文件 为什么使用文件 什么是文件 文件名 二进制文件和文本文件 流和标准流 流 标准流 文件指针 文件的打开和关闭 文件的顺序读写 顺序读写函数介绍 文件的随机读写 fseek ftell rewind 文件读取结束的判定 文件缓冲区 缓…

嵌入式linux中socket控制与实现

一、概述 1、首先网络,一看到这个词,我们就会想到IP地址和端口号,那IP地址和端口各有什么作用呢? (1)IP地址如身份证一样,是标识的电脑的,一台电脑只有一个IP地址。 (2)端口提供了一种访问通道,服务器一般都是通过知名端口号来识别某个服务。例如,对于每个TCP/IP实…

Nginx:动静分离

什么是动静分离? 动静分离 是指将网站中的静态资源(如图片、样式表、脚本等)和动态内容(如 PHP、Python、Node.js 等后端生成的内容)分开部署和处理。这样做的好处是可以利用不同的服务器或缓存策略来优化不同类型的资源。 动静分离的好处 提高性能:静态资源可以直接从…