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

推出 Elasticsearch 查询语言 (ES|QL)

作者:Costin Leau

我很高兴地宣布,经过大约一年的开发,Elasticsearch 查询语言 (ES|QL) 已准备好与世界共享,并已登陆 Elasticsearch 存储库。 ES|QL 是 Elasticsearch® 原生的强大声明性语言,专为可组合性、表现力和速度而设计。

为什么要另一种语言?

Elasticsearch 支持多种语言,从古老的 queryDSL 到 EQL、KQL、SQL、Painless、Canvas/Timelion 等,随着其采用率的增加,受众及其需求也在增加。 它不再只是 “全文搜索”。 它涉及很多事情,例如日志探索、威胁搜寻、报告、警报和自定义处理。

作为我们自己产品的消费者,我们想要一种与 Elasticsearch 交互的单一、整合的方式,这种方式可以使全面的计算功能接近数据,并且无需昂贵地传输到外部系统进行自定义处理。

以下是使用 MySQL 演示 employees 数据集(进行了大量修改)从测试套件中获取的 ES|QL 查询:

  FROM employees
| EVAL hired_year = TO_INTEGER(DATE_FORMAT(hire_date, "YYYY"))
| WHERE hired_year > 1984
| STATS avg_salary = AVG(salary) BY languages
| EVAL avg_salary = ROUND(avg_salary)
| EVAL lang_code = TO_STRING(languages)
| ENRICH languages_policy ON lang_code WITH lang = language_name
| WHERE NOT IS_NULL(lang)
| KEEP avg_salary, lang
| SORT avg_salary ASC
| LIMIT 3

返回类似于以下内容的响应:

{"columns": [{"name": "avg_salary", "type": "double"},{"name": "lang",       "type": "keyword"}],"rows": [["43760.0", "Spanish"],["48644.0", "French"],["48832.0", "German"]]
}

单个 ES|QL 查询执行过滤、处理、分组、重命名、排序、查找和列修剪。

查询从上到下流动,就像数据一样。 人们可以根据需要链接任意数量的命令,对它们重新排序,并使用内置函数或其自身的评估。 ES|QL 提供了统一的查询体验,比现有的查询界面更简单、更强大,并且将继续可用。

专用查询引擎

ES|QL 不仅仅是一种语言,还是 Elasticsearch 的成熟、专业的查询和计算引擎。 没有对 QueryDSL 的翻译或转译:所有 ES|QL 查询都经过词法分析和解析、解析和语义分析、验证和优化,然后是针对集群中的数据进行分布式执行的规划阶​​段。 指定的目标节点负责本地执行,并通过使用 ES|QL 基础设施执行自己的本地重新规划来利用本地数据特征。

ES|QL 带来了一种在设计时考虑到性能的新执行引擎,该引擎一次对块而不是对每行进行操作,以矢量化和缓存局部性为目标,并支持专业化和多线程。 它是一个独立于现有 Elasticsearch 聚合框架的组件,具有不同的性能特征。 在我们当前的基准测试中,几个聚合有了显着的改进(下图中的值越小越好)。

目标是提供不同的功能,例如执行多个链式分组:

POST /_query?format=txt
{"query" : """FROM employees
| STATS c = COUNT(emp_no) BY languages
| STATS most_speakers_of_a_lang = MAX(c)"""
}

上面查询显示的结果为:

most_speakers_of_a_lang
-----------------------
21

请留意未来的博文,我们将探讨 ES|QL 的功能、设计决策和架构。

我在哪里可以得到它?

ES|QL 代码目前在功能分支上可用,并将作为 Elasticsearch 中的技术预览版发布。 这是一项免费功能,可供所有人使用。 每天快照很快就会可供下载,因此请随时查看代码并自行构建。 尝试一下 ES|QL 并开始探索本地数据 - 请阅读此处的文档。

因为我们正处于 ES|QL 的早期阶段,可能存在一些未解决的问题、障碍,甚至是错误,请提出问题。 我们迫不及待地想与 Elasticsearch 社区分享 ES|QL!

我们代表 ES|QL 团队期待您的反馈!

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

原文:https://www.elastic.co/blog/elasticsearch-query-language-esql

相关文章:

推出 Elasticsearch 查询语言 (ES|QL)

作者:Costin Leau 我很高兴地宣布,经过大约一年的开发,Elasticsearch 查询语言 (ES|QL) 已准备好与世界共享,并已登陆 Elasticsearch 存储库。 ES|QL 是 Elasticsearch 原生的强大声明性语言,专为可组合性、表现力和速…...

机器学习 day32(神经网络如何解决高方差和高偏差)

解决高偏差和高方差的新方法 之前,我们需要通过选取多项式次数以及正则化参数λ,来平衡高方差和高偏差 只要训练集不是特别大,那么一个大型的神经网络总能很好的适应训练集,即它的Jtrain很低由此可以得出,若要减小Jt…...

Web前端之NodeJS、Vue

文章目录 一、Babel转码器1.1 Babel安装流程1.2 Babel命令行转码 二、Promise对象三、测试方式四、Vue(渐进式JS框架)4.1 准备4.2 创建一个项目4.3 运行一个项目 五、模板语法5.1 文本5.2 原始html5.3 属性Attribute5.4 使用JavaScript表达式 六、条件渲…...

冠达管理:银行定增是利好还是利空?

银行定增是指银行经过向特定投资者定向发行股票的方法进行增发。这种方法被认为可认为银行提供本钱充足、拓展融资渠道、增强抵挡危险的才能。但是,关于银行定增是否对商场和投资者带来积极影响的讨论一向存在。本文将从多个角度进行剖析,以讨论银行定增…...

背上小书包准备run之TypeScript篇

这TypeScript我真不知道面试会咋问。。。 哦以前还写过一篇基础⬇️ Typescript 基础易理解-------冲冲冲_ts和js有什么区别_慢谷的博客-CSDN博客 typescript是啥?与javascript的区别? TypeScript是一个强类型的JavaScript超集,可编译为纯…...

什么是绩效管理?绩效管理包括哪些内容?

阅读本文您可以了解:1、绩效管理的定义;2、绩效管理的内容; 一、什么是绩效管理 绩效管理是一种组织和管理方法,旨在确保员工的工作与组织的目标保持一致,以及激励和提高员工的工作表现。它涉及设定明确的目标和标准&…...

Java基础练习八(二维数组)

1.装水问题 有一个 异形 容器,用一个 n * n 的二维数组来表示。其中 1 表示容器实心部分, 0 表示空心部分。现使用此容器装水,能装多少水(每个元素都表示一份水,只有有挡板的部分能装水)? publi…...

Biopython序列比对

从InterPro网站(https://www.ebi.ac.uk/interpro/download/Pfam/)下载多序列比对文件Pfam-A.seed.gz(含多个多序列比对) ​wget https://ftp.ebi.ac.uk/pub/databases/Pfam/current_release/Pfam-A.seed.gz解压,取第一…...

无法坚持运动?解密肠道菌群影响运动积极性

谷禾健康 运动可以说是最有效和可行的生活方式因素,个人可以利用它来保护自己免受各种疾病的侵害,包括代谢性、心血管、神经退行性和肿瘤性疾病。 世界卫生组织建议,每周进行150-300分钟的中等强度运动。 运动的好处具体不用多说了&#xff0…...

4-5-tablewidget

文章目录 添加控件,添加行列数widget.cppwidget.h效果 添加控件,添加行列数 widget.cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this)…...

前端基础第一天-html-综合案例

通过综合案例&#xff0c;主要复习&#xff1a; 目录文件夹今日所学标签路径锚点链接 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initia…...

PDF Expert 3.3 for mac

PDF Expert是一款专业的PDF编辑和阅读工具。它可以帮助用户在Mac、iPad和iPhone等设备上查看、注释、编辑、填写和签署PDF文档。 以下是PDF Expert的特点&#xff1a; PDF编辑&#xff1a;PDF Expert提供了丰富的PDF编辑功能&#xff0c;包括添加、删除、移动、旋转、缩放、裁…...

【腾讯云 Cloud Studio 实战训练营】深度体验 | 使用腾讯云 Cloud Studio 快速构建 Vue + Vite 完成律师 H5 页面

【腾讯云 Cloud Studio 实战训练营】深度体验 | 使用腾讯云 Cloud Studio 快速构建 Vue Vite 完成律师 H5 页面 写在前面的话一、腾讯云 Cloud Studio 介绍1.1 Cloud Studio 应用场景1.2 Cloud Studio 开发优势 二、沉浸式体验开发快速构建 H5 页面2.1 注册与登录 Cloud Studi…...

Word转PDF在线转换如何操作?分享转换技巧

现如今&#xff0c;pdf转换器已成为大家日常办公学习必不可少的工具&#xff0c;市场上的pdf转换器主要有两种类型&#xff0c;一种是需要下载安装的&#xff0c;另一种是网页版&#xff0c;打开就可以使用的&#xff0c;今天小编给大家推荐一个非常好用的网页版pdf转换器&…...

只需5步 真·双开电脑版微信

最近发现&#xff0c;有些小伙伴不仅有双开手机版微信的需求&#xff0c;同时也有电脑版的需求。 今天教大家一个方法&#xff0c;简单好用&#xff0c;只需要跟着图片操作&#xff0c;5步即可&#xff01;快一起来试试吧~ 1.下载安装ProcessExplorer 2.右键以管理员身份运行…...

如何将JSON字符串转化成对象

在这里只能使用ObjiectMapper这个类才能将Json字符串转成对象的格式进行输出 话不多说,直接上代码 实体类 //实体类 Setter Getter public class UserInfo implements Serializable {private Long id;private String name; //昵称private String phone; //手机转换代码 St…...

计算机网络 运输层 UDP和TCP对比

...

Zebec Protocol 将进军尼泊尔市场,通过 Zebec Card 推动该地区金融平等

流支付正在成为一种全新的支付形态&#xff0c;Zebec Protocol作为流支付的主要推崇者&#xff0c;正在积极的推动该支付方案向更广泛的应用场景拓展。目前&#xff0c;Zebec Protocol成功的将流支付应用在薪酬支付领域&#xff0c;并通过收购WageLink将其纳入旗下&#xff0c;…...

stm32项目(8)——基于stm32的智能家居设计

目录 一.功能设计 二.演示视频 三.硬件选择 1.单片机 2.红外遥控 3.红外探测模块 4.光敏电阻模块 5.温湿度检测模块 6.风扇模块 7.舵机 8.WIFI模块 9.LED和蜂鸣器 10.火焰传感器 11.气体传感器 四.程序设计 1.连线方式 2.注意事项 3.主程序代码 五.课题意义…...

边缘计算:连接智能世界的变革之力

随着物联网和人工智能的迅猛发展&#xff0c;边缘计算作为一种新兴的计算模式正受到越来越多的关注。边缘计算将数据处理和分析的能力从云端向网络的边缘推移&#xff0c;为各行各业带来了巨大的机遇和挑战。本文将探讨边缘计算的定义、应用领域以及对未来智能世界的影响。 1.…...

别再乱码了!手把手教你用Qt Linguist(Qt语言家)搞定VS项目的中英文翻译

彻底解决Qt多语言乱码&#xff1a;VS项目国际化全流程实战指南 在跨语言桌面应用开发中&#xff0c;乱码问题堪称开发者噩梦。当你的中文界面在Qt Linguist中显示为"烫烫烫"&#xff0c;或者翻译后的文字变成问号方块时&#xff0c;这种挫败感足以让任何开发者抓狂。…...

文本到图像生成中的人类反馈数据集构建与实践

1. 文本到图像生成中的人类反馈数据集构建实践 在大型语言模型(LLMs)领域&#xff0c;基于人类偏好的学习方法取得了显著成功&#xff0c;这启发了我们在文本到图像生成领域采用类似的方法论。传统的图像偏好标注(即从两张图像中选择更好的一张)虽然有用&#xff0c;但存在信息…...

2026年论文摘要和引言AI率偏高攻略:论文开头部分降AI完整处理方案

2026年论文摘要和引言AI率偏高攻略&#xff1a;论文开头部分降AI完整处理方案 从AI率73%到6%&#xff0c;我花了不到一个晚上。摘要降AI完整经历记录。 核心工具&#xff1a;嘎嘎降AI&#xff08;www.aigcleaner.com&#xff09;&#xff0c;4.8元&#xff0c;达标率99.26%。…...

如何3分钟实现GitHub界面完全汉化:面向中文开发者的终极指南

如何3分钟实现GitHub界面完全汉化&#xff1a;面向中文开发者的终极指南 【免费下载链接】github-chinese GitHub 汉化插件&#xff0c;GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 你是否曾经在…...

STM32F103实战:用CubeMX和HAL库搞定TM1622/HT1622液晶驱动(附完整代码)

STM32F103实战&#xff1a;用CubeMX和HAL库高效驱动TM1622液晶模块 在嵌入式开发中&#xff0c;液晶显示驱动是常见需求。TM1622/HT1622作为经济实用的LCD驱动芯片&#xff0c;广泛应用于各类小型设备。本文将展示如何利用STM32CubeMX和HAL库快速构建稳定可靠的驱动方案&#…...

QQ音乐加密文件解锁指南:如何用qmcdump实现音乐格式自由转换

QQ音乐加密文件解锁指南&#xff1a;如何用qmcdump实现音乐格式自由转换 【免费下载链接】qmcdump 一个简单的QQ音乐解码&#xff08;qmcflac/qmc0/qmc3 转 flac/mp3&#xff09;&#xff0c;仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump …...

告别IP变动烦恼:用Win11+WSL2搭建稳定SSH服务器的保姆级教程(含开机自启)

Win11WSL2终极SSH服务器搭建&#xff1a;零配置维护的自动化方案 每次重启电脑都要重新配置SSH连接&#xff1f;WSL2的IP变动让你抓狂&#xff1f;这套方案将彻底解决这些痛点。不同于网上零散的教程&#xff0c;我们将从系统底层构建一个完全自动化的SSH服务环境&#xff0c;让…...

Qwen3.5-2B模型精调实战:使用自定义数据集训练行业专属模型

Qwen3.5-2B模型精调实战&#xff1a;使用自定义数据集训练行业专属模型 1. 前言&#xff1a;为什么要精调大模型&#xff1f; 最近两年&#xff0c;大语言模型在通用领域展现出了惊人的能力。但很多企业开发者发现&#xff0c;直接把现成的模型拿来用&#xff0c;在专业场景下…...

手把手教你用STM32F103C8T6的软件IIC驱动MPU6050(附完整代码与调试心得)

从零开始&#xff1a;STM32F103C8T6软件IIC驱动MPU6050全流程实战 第一次接触嵌入式传感器开发时&#xff0c;最令人头疼的往往不是代码本身&#xff0c;而是那些隐藏在硬件连接和协议细节中的"坑"。还记得我初次尝试用STM32驱动MPU6050时&#xff0c;花了整整两天时…...

chruby高级配置技巧:自定义Ruby安装路径和环境变量设置终极指南

chruby高级配置技巧&#xff1a;自定义Ruby安装路径和环境变量设置终极指南 【免费下载链接】chruby Changes the current Ruby 项目地址: https://gitcode.com/gh_mirrors/ch/chruby chruby是一款轻量级的Ruby版本管理工具&#xff0c;能够帮助开发者轻松切换不同的Rub…...