改善 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.mzph.cn/bicheng/66230.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mono里运行C#脚本25—mono_codegen

前面分析怎么样找到主函数Main的入口点功能,也就是说已经找到了这个函数的CIL代码。虽然找到了代码,但是还不能执行它的,因为它是一种虚拟机的代码。也就是说它是假的代码,不是现实世界存在的机器的代码,因此不能直接执行,必须经过后端编译器的再次编译才能真正运行它。下…

基于Spring Boot的紧急物资管理系统

基于Spring Boot的紧急物资管理系统是一个非常实用的应用,特别是在应对自然灾害、公共卫生事件等情况下。该系统可以帮助管理者有效地追踪和分配物资,确保资源能够及时到达需要的地方。以下是一个基本的实现思路和一些关键组件: 项目规划 需…

mini-dog-c编译器之词法分析

mini-dog-c 是一个小型的 C 语言编译器,是我学习和理解编译器基本工作原理的实践项目。其词法分析器能够识别 C 语言的基本语法元素,包括常见的标识符、整数和浮点数字面量、布尔字面量以及字符串字面量。此外,它还支持基本的算术和逻辑操作符…

机器学习基础-概率图模型

(一阶)马尔科夫模型的基本概念 状态、状态转换概率、初始概率 状态转移矩阵的基本概念 隐马尔可夫模型(HMM)的基本概念 条件随机场(CRF)的基本概念 实际应用中的马尔科夫性 自然语言处理: 在词…

力扣hot100——链表

160. 相交链表 class Solution { public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {set<ListNode*> s;ListNode* h headA;while (h ! NULL) {s.insert(h);h h->next;}h headB;while (h ! NULL){if (s.find(h) ! s.end()) {return h;}h …

Qt打包为exe文件

个人学习笔记 选择release 进入项目文件夹&#xff0c;查看releas生成的文件 releas文件路径 进入release看到exe文件&#xff0c;但是无法执行 将exe文件单独放到一个文件夹内 选择MinGW 用CD 进入存放exe文件的路径&#xff0c;输入下面指令 cd J:\C\Qt\test4-3-1 windeploy…

VScode怎么重启

原文链接&#xff1a;【vscode】vscode重新启动 键盘按下 Ctrl Shift p 打开命令行&#xff0c;如下图&#xff1a; 输入Reload Window&#xff0c;如下图&#xff1a;

小屏幕下通过css自动实现上下位置颠倒例子

<!DOCTYPE html> <html><head><meta charset"utf-8"><meta name"viewport" content"widthdevice-width, initial-scale1"><title>Demo</title><!-- 请勿在项目正式环境中引用该 layui.css 地址 --…

下列指标组合中,不能用于系统性评价缺陷识别模型精度的指标

19 下列指标组合中&#xff0c;不能用于系统性评价缺陷识别模型精度的指标为&#xff1a; A 检出率和准确率 B 检出率和误报比 C 平均精确率 D 准确率和误报比 对于评价一个缺陷识别模型的精度&#xff0c;检出率、准确率、检出率和误报比等指标常被用来系统性地评估模型的效…

Web安全 - “Referrer Policy“ Security 头值不安全

文章目录 概述原因分析风险说明Referrer-Policy 头配置选项1. 不安全的策略no-referrer-when-downgradeunsafe-url 2. 安全的策略no-referreroriginorigin-when-cross-originsame-originstrict-originstrict-origin-when-cross-origin 推荐配置Nginx 配置示例 在 Nginx 中配置 …

spring mvc源码学习笔记之六

pom.xml 内容如下 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…

Hyperbolic dynamics

http://www.scholarpedia.org/article/Hyperbolic_dynamics#:~:textAmong%20smooth%20dynamical%20systems%2C%20hyperbolic%20dynamics%20is%20characterized,semilocal%20or%20even%20global%20information%20about%20the%20dynamics. 什么是双曲动力系统&#xff1f; A hy…

vue3组件化开发优势劣势分析,及一个案例

Vue 3 组件化开发的优势和劣势 优势 可复用性&#xff1a; 组件可以重复使用&#xff0c;减少代码冗余&#xff0c;提高开发效率。 可以在不同的项目中复用组件&#xff0c;提升开发速度。 可维护性&#xff1a; 组件化开发使得代码结构清晰&#xff0c;易于维护。 每个…

基于SpringBoot在线竞拍平台系统功能实现十五

一、前言介绍&#xff1a; 1.1 项目摘要 随着网络技术的飞速发展和电子商务的普及&#xff0c;竞拍系统作为一种新型的在线交易方式&#xff0c;已经逐渐深入到人们的日常生活中。传统的拍卖活动需要耗费大量的人力、物力和时间&#xff0c;从组织拍卖、宣传、报名、竞拍到成…

Tomcat性能优化与负载均衡实现

在现代互联网应用中&#xff0c;Apache Tomcat作为一个广泛使用的Java Web应用服务器&#xff0c;扮演着至关重要的角色。随着用户数量的不断增加和业务的不断扩展&#xff0c;如何提升Tomcat的性能和实现高可用性成为了开发者们关注的焦点。本文将介绍Tomcat的性能优化技巧以及…

Ubuntu 搭建SVN服务

目录 ​ 1、安装SVN服务端 2、创建SVN版本库 3、修改SVN配置svnserve.conf 3.1 配置文件介绍 3.2 svnserve.conf配置 3.3 authz配置设置用户读写权限 3.4 passwd配置 用户名密码 4、启动SVN服务 4.1 配置开机启动 1、安装SVN服务端 sudo apt-get install subversion…

DataV数据可视化

阿里云 DataV 是一个强大的数据可视化工具&#xff0c;可以帮助用户通过创建丰富的图表、仪表盘、地图和互动视图&#xff0c;将复杂的数据转化为易于理解和分析的可视化信息。DataV主要用于大数据和实时数据的展示&#xff0c;可以帮助企业和个人更直观地理解数据背后的含义&a…

电子电气架构 --- 整车整车网络管理浅析

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的…

基于 Python 大数据的购物车智能推荐与分析系统

标题:基于 Python 大数据的购物车智能推荐与分析系统 内容:1.摘要 随着电子商务的快速发展&#xff0c;购物车智能推荐与分析系统成为了提高用户购物体验和促进销售的重要手段。本系统基于 Python 大数据技术&#xff0c;通过对用户购物行为数据的分析&#xff0c;为用户提供个…

neo4j学习笔记

图数据库 图数据库是基于图论实现的一种NoSQL数据库&#xff0c;其数据存储结构和数据查询方式都是图论为基础的&#xff0c;图数据库主要用于存储更多的连接数据。 图论&#xff08;GraphTheory&#xff09;是数学的一个分支。图论以图为研究对象&#xff0c;图论的图是由若干…