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

ES|QL:Elasticsearch的 新一代查询语言

作者:李捷

学会选择很难。学会正确选择更难。而在一个充满无限可能的世界里学会正确选择则更难,也许是太难了。” 巴里-施瓦茨(Barry Schwartz)在《选择的悖论--多就是少》(The Paradox of Choice -More is Less)一书中的一段话概括了为什么灵活性和可定制性过高会让用户不知所措。现代生活中的大量选择可能会导致瘫痪和不满,而不是我们所期望的自由和幸福。多年来,我们在 _search API 中添加了更多的功能和特性,并提供了一个非常灵活和高度可定制的数据搜索平台。但在某些时候,这也是 Elasticsearch 不再像以前那样简单,尤其是对于那些刚刚起步的人来说

随着 Elasticsearch 8.11 版本的即将推出,我们非常高兴地宣布,我们将迎来一个全新的查询语言 ES|QL (Elasticsearch Query Language 的简称)。ES|QL 是一种更加一致、简洁、实用、高效的语言,旨在解决用户在使用 Elasticsearch 时面临的复杂性问题。这是一个里程碑式的发布,我们深知这将改变数据分析的方式,因此我们致力于提供最好的体验。新的 ES|QL 查询语言和引擎 (_query API) 将会替代原有的语言和聚合引擎 (_search API),成为大多数场景下的默认选择,并且将会有大幅的性能提升。

因此,在本博文以及接下来的系列文章中,我们将会带领大家提前预览和体验 ES|QL,这个 Elastic 在数年前就开始秘密开发的杀手级功能。这是一个重要的更新,我们也将会持续提供有关 ES|QL 的相关信息,以确保您可以尽快掌握这个新的功能。

Why ES|QL

Elasticsearch 是一个分布式、非关系型、半结构化、带有时间维度的强大数据平台,支持全文检索、聚合分析、机器学习等功能。在 Elasticsearch 的历史上,曾经诞生过多种语言,如 DSL、KQL、EQL、Lucene、SQL 等,这些语言为 Elasticsearch 的用户在不同的场景下提供了多样的查询能力。

语言

全称

说明

DSL

Elasticsearch 特定领域语言

Elasticsearch 最基础和最强大的查询语言,基于JSON格式

KQL

Kibana 查询语言

用于快速和交互式地进行数据探索和可视化的查询语言,基于文本格式

EQL

事件查询语言

专门用于事件检测和威胁狩猎的查询语言,基于文本格式

Lucene

Elasticsearch 内部 Lucene 搜索引擎的原生语言

用于直接操作 Lucene 索引和文档的底层语言,基于文本格式

SQL

标准结构化查询语言的本地子集

广泛使用的关系型数据库查询语言,基于文本格式

Painless

Elasticsearch 脚本语言

用于对数据进行自定义处理和计算的脚本语言,基于Java语法

Canvas

由其他语言补充的表达式语言

用于创建动态和交互式的数据展示和可视化的表达式语言,基于文本格式

Timelion

用于时间序列的表达式语言

用于对时间序列数据进行分析和可视化的表达式语言,基于文本格式

Vega

用于描述数据处理和可视化的语法

用于创建复杂和高级的数据展示和可视化的语法,基于JSON格式

然而,这一情况也给用户带来了困扰,尤其是在需要决定在特定场合下应该使用哪种语言时。

复杂性是我们的敌人

虽然 Elasticsearch 在许多领域都表现出了非凡的能力,但其碎片化的查询语言在检索和分析方面给用户带来了挑战。我们所说的碎片化是什么意思?事实上,根据客户的反馈,在全观测性和安全分析场景中,在调查问题时,他们往往需要通过多达 6 个或更多的查询,使用不同的查询语言,并在 Kibana 中进行导航,才能找到所需的内容。因此,降低复杂性的关键在于能够在一个屏幕上以一种语言,以组合的方式尽可能多地在单一语句中进行搜索、过滤、转换、聚合和可视化。

并且,这种复杂性也表现在以下几个方面:

  1. 专业知识 - Elasticsearch 提供了丰富的功能,但需要在学习和配置方面进行投资。

  2. 经验 - 在调查过程中,需要多个窗口来提供必要的信息。规划和获取数据需要时间和精力。

  3. 语言 - Elastic 是变通之王。但是,实现查找、连接和内联统计等功能需要额外的工具。

因此,ES|QL 应运而生。ES|QL 的设计初衷是为了解决实际的查询问题,减轻用户学习负担,更加一致、简洁、实用、高效地解决实际问题。ES|QL 不仅具有直观易用性,还能在一个屏幕、一条语句中进行搜索、过滤、转换、汇总和可视化,从而减少复杂性的体现。

What is ES|QL

ES|QL 是一种功能强大的声明式语言,专为 Elasticsearch 设计,注重可组合性、表现力和速度。同时,它也是一种支持数据迭代探索的查询语言。

ES|QL 查询由一系列由管道分隔的命令组成。每个查询都以 Source 命令 开始。源命令会生成一个表,通常包含来自 Elasticsearch 的数据。

源命令后面可以跟一个或多个 处理命令。处理命令通过添加、删除或更改行和列来更改输入表。

你可以链接处理命令,并用管道符分隔:|。每个处理命令都作用于前一个命令的输出表。

查询的结果是最终处理命令生成的表。

与之前提到的ES支持的各种搜索语言不同,这九种语言中的每一种都具有以下功能之一:过滤、处理、分组、重命名、排序、查找和列剪枝等功能。然而,不能同时实现所有这些功能。相比之下,ES|QL则能够在单一、统一的管道化命令语法和数据模型中执行所有这些功能。ES|QL相对于许多其他语言来说更易于使用,功能也更强大。它独立于DSL,并可利用Elasticsearch集群提供的分布式处理功能。

重要的是,ES|QL 将会成为 Elasticsearch 的默认搜索语言

Highlight of ES|QL

专用高性能查询引擎

ES|QL 不仅是一种语言,还是 Elasticsearch 的一个完整的、专门的查询和计算引擎。ES|QL 查询不需要翻译或转换为 Query DSL:所有 ES|QL 查询都会经过词法分析、语法分析、语义分析、验证和优化,然后进行规划阶段以便对集群中的数据进行分布式执行。指定的目标节点负责本地执行,并利用 ES|QL 基础架构通过执行节点本地的重新规划来利用本地数据特性。

ES|QL 带来了一种在设计时考虑到性能的新执行引擎 —— 以块(block)的形式执行,而不是逐行执行,以向量化运算和缓存局部性为目标,并支持专业化和多线程。它是一个独立于现有 Elasticsearch 聚合框架的组件,具有不同的性能特征。

简单总结,ES|QL 的专用查询引擎具备以下特性:

  • 无需转译或翻译

  • 查询会被解析和优化以进行分布式执行

  • 以块(block)的形式运行,而不是逐行执行

  • 充分利用专业化和多线程技术

  • 以向量化和高速缓存定位为目标

在我们当前的基准测试中,ESQL 在许多情况下都优于 DSL,即便不进行任何的优化措施,也比已有的聚合框架更快:

上图中展示了 ES|QL 与原有搜索引擎在不同场景中的性能对比:

  • 绿色折线(search/aggs)代表已有的 DSL 搜索和原有的聚合引擎的性能

  • 蓝色折线(esql/shard partitioning)代表 ES|QL 在分片数据上单核运行

  • 粉红色折线(esql/doc partitioning)代表 ES|QL 在分片数据上多核运行

通过这个基准测试,我们看到,通过充分使用多线程技术,并且面向向量化和缓存的计算,ES|QL 已经实现了对现有框架在性能层面的遥遥领先,并且还将在未来充分受益于 Java 在向量化运算上的增强。

简约是终极的精致

我们深信简约是终极的精致,在 ES|QL,我们始终如一地践行这一理念。ES|QL 提供了管道式查询语言,让您能够轻松地在单一的语句中完成搜索、汇总、计算、转换和可视化等所有操作。并且,ES|QL 的查询语言与您可能已经熟悉的其他查询语言相似,为您提供了无缝体验。而在我们的下一代搜索引擎的设计标准是,需要能够实现更快的搜索速度,同时为数据调查和探索提供了全面的语言。我们一直致力于为用户提供更好的体验,并不断突破数据分析的极限。

其优势表现为:

  • 更快的查询速度:利用 Elasticsearch 查询引擎,可在多个阶段同时执行搜索和聚合,从而提高速度和效率。

  • 简化 Elasticsearch 和数据摄取:Elasticsearch 的搜索功能非常丰富,但需要投资学习。ES|QL 语法大大简化了对 Elasticsearch 及其功能的使用和理解。

  • 全新的变革性搜索引擎:ES|QL 查询引擎提供了lookup等新功能。只需一次查询,即可轻松实现搜索、聚合、计算和数据转换。未来,ES|QL 还将提供 inline stats 和 joins等其他功能

  • 快速洞察:直接从 Kibana Discover 创建可视化、计算和聚合,将调查工作流程浓缩在一个屏幕中,从而更快地获得答案。

  • 减少将数据引入 Elasticsearch 的摩擦:无论数据来源、结构、复杂性或数量如何,ES|QL 都能简化 Elasticsearch 中的数据摄取。

  • 警报:利用 ES|QL 写入可观测性和安全警报,并将汇总值作为阈值。通过强调有意义的趋势而非孤立的事件、减少误报并提供更具操作性的通知,提高检测准确性。

在解决方案上的增强

基于上面提到的 ES|QL 的诸多优点,在 Elastic 搜索平台上,各种解决方案都能够受益于 ES|QL 的强大功能。

搜索

使用 Elasticsearch 查询语言(ES|QL)提升搜索能力,这是一种创新的管道查询语言和引擎,旨在提供更好的开发体验和更高的性能。利用 ES|QL,用户可以在一次查询中检索、汇总、计算和转换数据。它的主要功能包括在查询时定义字段、执行数据丰富查询和并发处理查询。使用 ES|QL 以多种方式了解和探索数据。从利用客户端直接集成 API/代码,到直接从 Kibana 的搜索框中可视化结果,ES|QL 简化了您的数据调查,确保您轻松简单地从数据集中获得最大收益。有了 ES|QQL,开发人员将体会到代码和查询复杂性的降低,从而节省时间和成本。ES|QL 简化了查询结果在后续搜索中的使用,减少了对复杂脚本和多次查询的依赖,从而降低了计算成本。ES|QL 不仅仅是一个应用程序接口,它还是一种简单而强大的方式,可帮助您改变搜索方法。

全观测

使用 Elasticsearch 查询语言 (ES|QL),在 Elastic Observability 中对数据进行可视化和分析。您可以直接从搜索栏汇总、转换、计算和搜索您的指标、日志和跟踪数据,只需一次查询,即可优化定位性能瓶颈和系统问题,缩短解决问题的时间,消除浏览多个屏幕的麻烦。ES|QL 的高级查询引擎引入了多种功能,如在查询时定义字段、查找数据以丰富数据,以及并发查询处理以提高速度和效率。ES|QL 不仅能处理各种可观测性数据(无论数据来源和结构如何),还能帮助建立以汇总值作为阈值的可观测性警报。ES|QL 与 Elastic ML 和 AiOps 可通过强调有意义的趋势而非孤立事件、减少误报并提供更多可操作的通知,帮助提高检测准确性。ES|QL 可直接从搜索栏提供查询、聚合和可视化功能,从而确保系统性能和正常运行时间。

安全分析

利用 ES|QL(Elasticsearch 查询语言)提升安全态势。无论数据来源和结构如何,它都能加快 SecOps 工作流程并提高警报准确性。

快速灵活地搜索数据,并即时定义新字段,以推动调查和响应。汇总结果,例如查看最常访问的服务器。执行计算,例如入站流量和出站流量的比率。利用地理位置等上下文丰富结果。将结果可视化,以了解有意义的模式和异常情况。所有这些都只需一次管道式查询。

为了更准确地发出警报并减少警报疲劳,可在检测规则中加入汇总值。结果:信号更多,噪音更少。

ES|QL 对每个 SOC 开放,对每个分析师友好:

通过查找丰富数据:通过在当前数据集中引入额外的上下文,ES|QL 可提供更全面的视图,这在安全调查中至关重要。例如,客户可以通过一个搜索栏对 IP 地址执行查询,以确定其地理位置、与已知恶意实体的关联,或是否属于已知的云服务提供商。

总之,ES|QL 作为 Elastic 搜索平台上的核心功能,为各种解决方案带来了非凡的收益。它提供了高效准确的搜索、强大的数据分析和可视化能力,以及高度可扩展性和灵活性。这些优势使得各种解决方案能够更好地满足用户需求,并为企业带来更大的价值。

我在哪里可以得到它?

ES|QL 代码可在 Elasticsearch主分支中获取,并将作为 Elasticsearch 8.11 中的技术预览版发布。这是一项免费功能(basic订阅级别),可供所有人使用。每晚快照很快就会可供下载,因此请随时查看代码并自行构建。

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

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

 原文:ES|QL:Elasticsearch的新一代查询语言

相关文章:

ES|QL:Elasticsearch的 新一代查询语言

作者:李捷 “学会选择很难。学会正确选择更难。而在一个充满无限可能的世界里学会正确选择则更难,也许是太难了。” 巴里-施瓦茨(Barry Schwartz)在《选择的悖论--多就是少》(The Paradox of Choice -More is Less&…...

C语言实现句子中的单词颠倒排序

一、运行结果 二、源代码 # define _CRT_SECURE_NO_WARNINGS # include <stdio.h> # include <assert.h>//实现逆转函数&#xff1b; void reverse(char* left, char* right) {//断言left和right都不能为空&#xff1b;assert(left);assert(right);//循环逆转字母…...

MySQL学习(八)——锁

文章目录 1. 锁概述2. 全局锁2.1 全局锁的必要性2.2 语法2.3 全局锁的特点 3. 表级锁3.1 表锁3.2 元数据锁3.3 意向锁3.4 自增锁 4. 行级锁4.1 介绍4.2 记录锁4.3 间隙锁4.4 临键锁 1. 锁概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中&#xff0c;除传…...

让iPhone用电脑的网络上网

让iPhone用电脑的网络上网&#xff0c;可以按照以下步骤操作&#xff1a; 在iPhone上找到并点击“设置”选项&#xff0c;进入“蜂窝移动网络”。打开“个人热点”选项。此时下方的弹出对话框会显示“仅USB”。用数据线将你的iPhone与电脑相连&#xff0c;并在电脑上打开“控制…...

ThreeJS-3D教学十-有宽度的line

webgl中线是没有宽度的&#xff0c;现实的应用中一般做法都是将线拓宽成面来绘制。默认threejs的线宽是无法调节的&#xff0c;需要用有厚度的线 THREE.Line2。 先看效果图&#xff1a; 看下代码&#xff1a; <!DOCTYPE html> <html lang"en"> <he…...

安装Elasticsearch步骤(包含遇到的问题及解决方案)

注&#xff1a;笔者是在centos云服务器环境下安装的Elasticsearch 目录 1.安装前准备 2.下载Elasticsearch 3.启动Elasticsearch 非常容易出问题 第一次运行时&#xff0c;可能出现如下错误&#xff1a; 一、内存不足原因启动失败 二、使用root用户启动问题 三、启动ES自…...

网络编程面试笔试真题

网络编程笔试面试真题 1、关于Linux系统中多线程的信号处理&#xff0c;说法中不正确的是&#xff1f; A&#xff1a;在线程环境霞&#xff0c;产生的信号是传递给整个进程的 B&#xff1a;一般情况下&#xff0c;信号会随机给进程的一个线程 C&#xff1a;对某个信号处理函数…...

MySQL官方文档如何查看,MySQL中文文档

这里写自定义目录标题 MySQL官方文档如何查看MySQL中文文档 MySQL官方文档如何查看 MySQL官网地址&#xff1a;https://dev.mysql.com/doc/ 比如这里我要找InnoDB架构 MySQL中文文档 MySQL 5.1中文文档地址&#xff1a;https://www.mysqlzh.com/...

第七章:最新版零基础学习 PYTHON 教程—Python 列表(第四节 -如何在 Python 中查找列表的长度)

列表是 Python 日常编程不可或缺的一部分,所有 Python 用户都必须学习,了解其实用程序和操作是必不可少的,而且总是有好处的。因此,本文讨论了找到第一个这样的实用程序。使用Python 的列表中的元素。 目录 在 Python 中查找列表的长度...

XPS虽没流行,但还在使用!在Windows 10中打开XPS文件的最佳方法

当Windows Vista发布时&#xff0c;微软推出了XPS格式&#xff0c;这是PDF的替代品。XPS文件格式并不是什么新鲜事&#xff0c;但从未获得过多大的吸引力。 因此&#xff0c;XPS&#xff08;XML Paper Specification&#xff09;文件是微软对Adobe PDF文件的竞争对手。尽管XPS…...

23 种设计模式详解(C#案例)

&#x1f680;设计模式简介 设计模式&#xff08;Design pattern&#xff09;代表了最佳的实践&#xff0c;通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时…...

@SpringBootApplication配置了scanBasePackages导致请求一直404,分析下原因

出现RequestMapping注解的Controller类可能是因为SpringBootApplication注解中配置了scanBasePackages导致的请求一直返回404错误。 SpringBootApplication注解是Spring Boot的核心注解之一&#xff0c;它用于启动Spring Boot应用程序。这个注解实际上是一个组合注解&#xff…...

{大厂漏洞 } OA产品存在SQL注入

0x01 漏洞介绍 江苏叁拾叁-OA是由江苏叁拾叁信息技术有限公司开发的一款OA办公平台&#xff0c;主要有知识管理&#xff0c;工作流程&#xff0c;沟通交流&#xff0c;辅助办公&#xff0c;集成解决方案&#xff0c;应用支撑平台&#xff0c;基础支撑等功能。 该系统也与江苏叁…...

6-8 舞伴问题 分数 15

void DancePartner(DataType dancer[], int num) {LinkQueue maleQueue SetNullQueue_Link();LinkQueue femaleQueue SetNullQueue_Link();// 将男士和女士的信息分别加入对应的队列for (int i 0; i < num; i) {if (dancer[i].sex M){EnQueue_link(maleQueue, dancer[i]…...

samba服务器的功能是什么

Samba服务器是一个开源的网络文件共享服务&#xff0c;其主要功能是在不同操作系统之间实现文件和打印机共享。它最常用于将Linux/Unix系统与Windows系统互联&#xff0c;但也支持其他操作系统。 以下是Samba服务器的主要功能&#xff1a; 文件共享&#xff1a;Samba允许用户在…...

MSQL系列(五) Mysql实战-索引最左侧匹配原则分析及实战

Mysql实战-索引最左侧匹配原则分析及实战 前面我们讲解了索引的存储结构&#xff0c;BTree的索引结构&#xff0c;以及索引最左侧匹配原则&#xff0c;Explain的用法&#xff0c;今天我们来实战一下 最左侧匹配原则 1.联合索引最左侧匹配原则 联合索引有一个最左侧匹配原则 …...

react|redux状态管理

react|redux状态管理 参考官网&#xff1a;https://cn.redux-toolkit.js.org/tutorials/quick-start 状态管理使用流程 1、安装&#xff1a; npm install react-redux reduxjs/toolkit2、创建store.js 通过configureStore的hook对reducer&#xff08;或slice&#xff09;进行…...

Python之旅----判断语句

布尔类型和比较运算符 布尔类型 布尔类型的定义 布尔类型的字面量&#xff1a; True 表示真&#xff08;是、肯定&#xff09; False 表示假 &#xff08;否、否定&#xff09; 也就是布尔类型进行判断&#xff0c;只会有2个结果&#xff1a;是或否 定义变量存储布尔类型…...

【JavaEE】文件操作和IO

1 什么是文件&#xff1f; 针对硬盘这种持久化存储的I/O设备&#xff0c;当我们想要进行数据保存时&#xff0c;往往不是保存成一个整体&#xff0c;而是独立成一个个的单位进行保存&#xff0c;这个独立的单位就被抽象成文件的概念 2 文件路径 文件路径就是指咱们文件系统中…...

python使用dataset快速使用SQLite

目录 一、官网地址 二、安装 三、 快速使用 一、官网地址 GitHub - pudo/dataset: Easy-to-use data handling for SQL data stores with support for implicit table creation, bulk loading, and transactions. 二、安装 pip install dataset 如果是mysql&#xff0c;则…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念&#xff0c;其实 Fiori当中还有 V4&#xff0c;咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务)&#xff0c;代理中间件&#xff08;ui5-middleware-simpleproxy&#xff09;-CSDN博客…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档&#xff1a;manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号&#xff1a;4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...

MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释

以Module Federation 插件详为例&#xff0c;Webpack.config.js它可能的配置和含义如下&#xff1a; 前言 Module Federation 的Webpack.config.js核心配置包括&#xff1a; name filename&#xff08;定义应用标识&#xff09; remotes&#xff08;引用远程模块&#xff0…...