拆解 “ES 已死“ 伪命题:Agentic RAG 时代搜索引擎的终极形态
作者:来自 Elastic 李捷
xxx:“ES已死,#¥%@#¥……¥”
我:???
最近,某厂商发了一堆公关文章,翻来覆去地炒作 “ES 已死”,“放弃 ES”。这哪是什么正经的技术文章,说白了就是一场算计好的认知陷阱,妥妥的恶意误导。除了把用户带偏,对开源社区来说,有点开创了社区恶意流的先河,吃相难看。咱也犯不着在这没意义的事儿上浪费时间争论,咱直接聚焦到关键问题上:现在 Agentic RAG 都在重塑人机交互模式了,那下一代智能引擎的理想标准到底是啥样?
观点直接抛出,在如今 AI 搜索,也就是 RAG 应用的时代,Elasticsearch 绝对是首选之一。为啥这么说呢?下面这几个原因,我觉得特别关键 。
- 查询手段丰富:集全文、稀疏向量、密集向量检索于一体,配备丰富查询 DSL。附录对比 [1]
- 语义处理强大:具备文本分析、实体提取等丰富语义理解和数据处理功能,契合 RAG 应用需求。
- 大模型对齐:互联网广泛存在的 ES 训练知识,使得大模型的均能写出高效准确的 ES 查询和聚合语句
- RAG 闭环完整:涵盖索引、检索等业务闭环,以及集成、测试等产研闭环。
而如果我们真正关注 RAG 的实际应用场景和业务痛点,那么 Agentic RAG 必然是 RAG 的发展趋势。传统 RAG 已无法满足用户期望,局限性显著。在许多所谓的 RAG 教程中,例子多是解决简单查询问题,再让大模型总结,比如 “鲁迅说没说”。其局限在于,文档片段中必须有答案。但当问题复杂些,如 “公司本年度财报中,营收最优的一个季度和最差一个季度的数据有哪些不同?” 即便数据库中有该公司所有季度财务报告,向量库也难以提取相关信息(因为最优和最差是计算和排序的结果,并非简单查询可得)。抽象来讲,这种局限性大概就是 Search 和 Query 的区别。搜索(search)更多是检索过程,只能从知识库中找相关片段作为上下文生成内容;而 Query 更多是提问过程,回答问题需要理解问题意图,拆分任务,不仅要检索,还需计算、推理。因此,在 Agentic RAG 的架构中,我们需要的是像 ES 这样强大的集检索、计算与处理于一体的工具集引擎,而非简单的向量数据库。
因此,本文将分别从传统 RAG 和 Agentic RAG 两个场景探讨,为何 ES 仍是你最优先的选择之一。
现在 ES 适合于传统 RAG 吗?
首先一个问题,现在 ES 适合于传统 RAG 吗?
答案是肯定的。大多数反对声音往往带有故意的误导、偏见,甚至恶意。
这种误导极为隐性。比如过分强调单次运算的延迟。实际上,RAG 是精细活,多数需要部署 RAG 应用的场景,无论是问答系统、客服聊天机器人,还是语义化的文档检索,都需要理解查询语境和意图。真正的核心指标是准确理解查询意图,找出最相关的上下文信息,再由大模型给出最合适的回答。
由于 token 生成速度限制,一次问答通常需几秒,甚至十几秒钟。这一延迟在大多数应用场景中是可接受的。相较于最终整体效果的优化,纠结过程中向量查询是 20ms 还是 5ms 的延迟毫无意义。同理,写入吞吐和单机成本方面,ES 一个节点通常能承载 2 - 4TB 的数据量,而在传统 RAG 场景中,知识库规模具有显著的长尾特征 —— 80%的企业知识库小于 1TB。
因此,向量查询引擎的单机成本和写入吞吐并非构建 RAG 系统的瓶颈,也不是需重点考量的指标。更不用说,最新版的 ES 提供了最先进的 HNSW 索引,以及目前业内唯一 BBQ 量化,BBQ(Better Binary Quantization) 是 Lucene 和 Elasticsearch 在向量量化方面的一次飞跃,它将 float32 维度缩减为位,在保持高排名质量的同时,内存使用量减少了约 95%。BBQ 在索引速度(量化时间缩短 20-30 倍)、查询速度(查询速度提高 2-5 倍)方面均优于产品量化 (PQ) 等传统方法,同时准确度没有额外损失,已大幅降低了 ES 向量查询对计算资源的消耗。
那可能有人要问,如果要构建一个 RAG 系统,在选择知识库检索引擎时,应主要从哪些方面考虑?核心指标当然是从最终用户的需求反推。有没有效果(即找出来的知识片段是否准确,提供给大模型的上下文是否是最相关的片段)是第一体验,大体可从以下几个方面考虑:
- 增强对用户意图的理解:目前普遍通过更多处理(而不仅是密集向量的 embedding)来理解用户意图,包括但不限于:查询重写、拼写校正、关键词提取、查询扩展和放宽、查询解析、查询管道化、实体提取和词性标注。多数引擎只能提供部分基础能力,如向量转换和基础分词,而 ES 提供了全部能力。我们可通过 ES 上各种定制化分词器、部署的 NLP 小模型,以及通过推理接口对接的大模型来实现这些处理。或许有人会问,对于 query 的处理,大部分逻辑可放在检索引擎之外,由其他模块实现。这点不反对,虽增加了系统复杂性和成本(一个具备同等能力的多系统拼接方案,其隐性成本(数据一致性维护、多团队协作开销)往往是直接成本的 3-5 倍),但也提升了灵活性。然而,目前观察到理解用户意图最有效的做法(不一定成本最优)是通过大模型做前置的用户意图理解,即通过大模型进行查询转换或者查询重写。此时,ES 的核心优势尽显,因为 ES 丰富的文档和大量的社区资源已作为训练知识对齐到大模型当中,使得 LLM 无需 fine tuning 就能将理解后的用户意图翻译为准确的、可用的 ES DSL 语句;其次,意图理解后的查询拆分可能很复杂,而 DSL 提供了功能丰富且强大的混合查询,甚至聚合计算选项,使得 ES 最能匹配复杂的查询场景乃至计算场景。因此,ES 是 Query Transformation & Expansion 的最优选择。
- 增强对知识库数据的整理,使其更符合 RAG 的应用场景:这不是简单的 embedding,而是需要对知识库数据进行更深层次的处理,包括但不限于:
-
知识库的结构化(如 chunking)
-
知识库的语义化 (分词,稀疏向量转化,密集向量转化)
-
知识库的关联化(meta 数据丰富)
-
知识库的扩展化(如大模型的总结)
-
知识库的实体化
-
知识库的标准化。
-
这些处理通常需要大量的 ETL 工作以及完善的知识库引擎才能承载。实际上ES提供了包括 NLP 处理在内的丰富的数据处理功能,自然也能满足这种场景的数据存储和治理需求。
这里有几个功能分享给大家:
-
ES 提供了一个新的
semantic_text
字段类型,会对该字段的数据进行自动 chunk 和 embedding; -
ES 支持 nested vector search,以更好地适应返回整个文档的检索需求,而非仅返回 chunk 的片段;
-
ES 领先其他厂商十几个月,在 2023 年就提供了业界第一个稀疏向量的词扩展模型 ELSER [2] ,使用 Elastic 的 ELSER 与 BM25 相结合的混合搜索优于SPLADE、ColBERT 和 OpenAI 提供的高端嵌入模型,并且即将支持多语言。

-
ES 提供的推理 processor,可在数据写入过程中,通过绑定对应 processor 的 ingest pipeline 对数据进行处理,如实体提取、关键词提取、实体标注、词性标注等等。这些处理可在数据写入时完成,减少查询时的处理时间。
-
查询和排名优化:这是 ES 的强项,ES 提供了:
-
最丰富的查询 DSL;
-
统一数据结构内的混合查询选项;
-
并且提供了大多数模型所不具备的多个 Rerank 选项,帮助优化大模型上下文的相关性:
-
基于排名的多路融合的 RRF;
-
基于大模型语义理解的 semantic rerank;
-
基于用户反馈统计的 LTR rerank。
-
-
我们在此不一一赘述 ES 的功能,但如果你希望武器库里有更多选择(无论选择全文检索、向量搜索还是混合搜索),那么 ES 仍然是你最优先的选择。
Agentic RAG 需要一个什么样的引擎?
从上述分析不难看出,要突破传统 RAG 的局限,我们需要的是一个具备认知能力的智能引擎,而非简单的检索工具。这种引擎需要支持 “隐性意图理解” 甚至 “推理意图拆解”,而不仅仅是显性的关键词匹配。
-
若需求停留在 “直接检索显性事实”(如从产品文档中查找 “设备重置按钮位置”),传统 RAG 通过向量搜索 + 大模型总结即可实现。
-
但面对 “隐性事实推理”(如 “分析本季销售额暴跌是否与服务器宕机事件相关”),问题会触发复杂的认知链条:
-
意图拆解:需识别 “销售额暴跌” 的时间范围、统计口径,“服务器宕机” 的事件定位
-
多模态检索:同时查询财报文档(文本)、运维日志(时序数据)、客服工单(非结构化对话)
-
关联推理:通过 ES|QL 计算销售额与服务器可用性的时序相关性系数
-
决策生成:结合企业风险管理手册生成应对方案
-
这正是 Agentic RAG 的革命性之处——它将传统 RAG 进化为 “认知增强框架”,融合了:
-
ChatBI:用自然语言完成多维分析(“对比华北/华南区域在故障期间的订单流失率”)
-
ChatETL:动态构建数据管道(“提取过去三个月所有提及 ‘延迟’ 的客服录音,按情绪值排序”)
-
认知闭环:检索结果实时反馈至监控系统,触发自动化预案
而 Elasticsearch 之所以能成为 Agentic RAG 的终极引擎,关键在于其 “三位一体” 架构:
能力维度 | 技术实现 | 场景案例 |
多模态融合 | 原生支持文本/向量/数值/地理/日志等20+数据类型,支持嵌套文档和跨索引关联 | 在一次查询中同时分析产品手册(文本)、用户行为埋点(JSON)、服务器监控指标(时序数据) |
认知计算 | ESQL 提供类自然语言的混合计算能力( | 自动推导“季度营收异常”与“广告投放时段”的空间相关性 |
生态扩展 | 无缝集成 LogsDB(分析PB级日志)、MetricDB(实时指标聚合)、APM(应用性能数据) | 安全分析场景: |
有关 Agentic RAG 的更多阅读,请参阅:
-
超越向量:带 Agents 的智能混合搜索
-
Agentic RAG 详解 - 从头开始构建你自己的智能体系统
真实 Agentic RAG 场景(更易理解的日常多任务问题)
用户提问:
“帮我规划一个上海三日游,预算 5000元,要包含迪士尼、外滩夜景,还要避开人多的网红餐厅。”
阶段一:意图解析与任务拆解
LLM 将原始查询拆解为以下可执行任务:
-
核心需求提取:
-
时间范围:3天
-
预算限制:5000元(需拆分交通、住宿、门票、餐饮)
-
必去景点:迪士尼、外滩夜景
-
附加条件:餐厅避开高人流时段
-
-
生成结构化查询计划:
阶段二:多模态数据收割
ES 同步检索以下数据源,无需跨系统跳转:
数据类型 | 索引类型 | 检索策略示例 |
景点信息 | 文本+向量 | 混合搜索 :迪士尼门票价格(关键词)+ "适合家庭游玩"(语义向量) |
交通路线 | 地理+时序 | geo_shape 查询地铁线路 + |
餐厅评价 | 嵌套文档 | 嵌套聚合:统计“排队时长”中位数 + 过滤“网红”标签( |
酒店价格 | 数值+文本 | range 过滤价格区间 + |
ES 多任务查询示例:
(也可以用 DSL 查询)
阶段三:动态决策生成
LLM 根据 ES 多种任务的查询与计算结果,自动输出结构化方案并实时验证预算:
为什么选择 ES 而非传统方案?
-
传统方案:需串联旅游平台 API + 地图服务 + 餐饮点评数据库 + Excel 手动计算
-
ES 方案:单引擎完成语义理解 → 多点查询 → 动态计算,响应时间从分钟级压缩到秒级
-
杀手锏功能:实现完整业务闭环,甚至是可视化图表,都可以通过 Kibana 零代码配置完成
具体 ES 实现 Agentic RAG 的用例,可以参考下面的视频:
Elastic AI 助手介绍
总结
综上所述,无论是传统 RAG 场景,还是代表未来趋势的 Agentic RAG 场景,Elasticsearch 凭借其丰富的功能、强大的处理能力以及完整的闭环体系,都将是技术选型时不容忽视的择优选项。那些宣扬 “ES已死” 的言论,纯粹就是瞎扯。其实开源社区真没必要天天想着怎么攻击别人,也别总想着用一些歪门邪道去误导用户。真想让这个行业进步,应该是一起把蛋糕做大,让更多的使用场景从传统的文本检索上进行迁移。
我真心希望以后能看到更多厉害的技术突破,大家一起把 AI Search 技术往前推,给用户带来更方便、更智能的搜索和问答体验,也帮企业多赚点钱。技术这东西,本来就是要服务社会的,让咱们的生活和工作变得更好。
附录
功能描述 | Elasticsearch | 大多数其他引擎 |
Full Text Search (全文搜索) | ✔(全文搜索,文本匹配) | x |
ANN Search (近似最近邻搜索) | ✔(HNSW,int8/4、BBQ 量化) | ✔(ANN,基于向量的相似度) |
kNN Search (k近邻搜索) | ✔(kNN暴力搜索) | ✔(ANN 向量检索) |
Text Analysis (文本分析) | ✔(内置文本分析器,分词器) | x |
Semantic Search (语义搜索) | ✔(基于文本和稀疏向量的语义搜索) | ?(基础支持,缺少复杂语义分析) |
Querying (查询功能) | ✔ 超过 30 种查询(查询DSL,支持复杂查询构造、多个匹配模式、嵌套查询、组合字段查询、模糊匹配、加权查询、高亮显示) | ✔ 平均3 种 (简单查询,支持基本运算) |
Filtering (过滤功能) | ✔(多种过滤方式) | ✔(基于属性和向量过滤) |
Aggregations (聚合分析) | ✔ 超过 20 种聚合算子(聚合查询,数据统计) | x |
Range Search (范围查询) | ✔(范围查询) | ✔(支持向量范围查询) |
Sorting (排序) | ✔(排序功能) | ? |
Retrieval Augmented Generation (RAG) | ✔(支持RAG,检索增强生成) | x |
Reranking (重排名) | ✔(基于语义和统计的重排序) | x |
Search with Synonyms (同义词搜索) | ✔(同义词支持) | x |
Query Templates (查询模板) | ✔(支持查询模板) | x |
SQL-like Queries (SQL查询) | ✔(支持ESQL和SQL查询) | x |
Cross-cluster Search (跨集群搜索) | ✔(支持跨集群搜索) | x |
Geospatial Analysis (地理空间分析) | ✔(地理空间查询和聚合) | x |
Retrieving Selected Fields (字段选择) | ✔(指定字段检索) | ✔(返回指定向量) |
Search Analytics (搜索分析) | ✔(搜索统计与分析) | x |
Scripting (脚本支持) | ✔(支持自定义脚本) | x |
相关文章:
拆解 “ES 已死“ 伪命题:Agentic RAG 时代搜索引擎的终极形态
作者:来自 Elastic 李捷 xxx:“ES已死,#%#……” 我:??? 最近,某厂商发了一堆公关文章,翻来覆去地炒作 “ES 已死”,“放弃 ES”。这哪是什么正经的技术文章&…...
eNSP中路由器的CON/AUX接口、GE Combo接口、Mini USB接口、USB接口、WAN侧uplink接口、FE接口、GE接口介绍
路由器常见接口的详细介绍及其应用示例: 1. CON/AUX 接口 全称:Console/Auxiliary(控制台/辅助接口)作用: CON(Console):通过命令行界面(CLI)直接配置路由器…...
平面的四种方程及一些应用
平面的四种方程及一些应用 点法式方程一般式方程三点式方程截距式方程一些应用已知平面方程,找出平面上不共线的三个点 点法式方程 平面经过点 ( x 0 , y 0 , z 0 ) (x_0,y_0,z_0) (x0,y0,z0)且法向量为 ( a , b , c ) (a,b,c) (a,b,c),则平面的点…...
记录一个SQL自动执行的html页面
在实际工作场景中,需要运用到大量SQL语句更新业务逻辑,对程序员本身,写好的sql语句执行没有多大问题(图1),但是对于普通用户来说还是有操作难度的。因此我们需要构建一个HTML页面(图2࿰…...
SpringBoot——Maven篇
Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的工具。它具有许多特性,其中一些重要的特性包括: 1. 自动配置:Spring Boot 提供了自动配置的机制,可以根据应用程序的依赖和环境自动配置应用程序的各种组件ÿ…...
数据批处理(队列方式)
数据批处理(队列方式) public class DataProcessor {private static final int THREAD_COUNT 4;private static final int QUEUE_SIZE 10;private LinkedBlockingQueue<Data> queue new LinkedBlockingQueue<>(QUEUE_SIZE);public DataP…...
从零开始搭建搜索推荐系统(五十四)多路召回之万剑归宗
聊的不止技术。跟着小帅写代码,还原和技术大牛一对一真实对话,剖析真实项目筑成的一砖一瓦,了解最新最及时的资讯信息,还可以学到日常撩妹小技巧哦,让我们开始探索主人公小帅的职场生涯吧! (PS…...
c++介绍函数指针 十
指针代表内存中地址标识符,变量,数组都是存储内存中的数据。所以可以获得它们的地址,用指针来表示这块内存。 如图输出内存中的地址。 对于一个函数来说,也是内存中存储这段数据,所以我们也可以获取函数的地址。 函数…...
redis数据库
一、redis数据库介绍 NoSQL Not Only SQL 非关系型数据库 1、关系型数据库与非关系型数据库的区别 非关系型数据库性能高、速度快、支持高并发连接 1、非关系型数据库基于内存存储数据 2、摒弃了关系型数据的约束限制 3、采用o1算法进行设计开发 2、作用 关系型数…...
关于 NoC 中数据安全传输的设计与实现的详细介绍
片上网络(Network-on-Chip,NoC)作为一种新兴的片上通信架构,解决了传统总线架构在大规模集成电路设计中面临的诸多问题。然而,随着芯片系统的复杂性和应用场景的多样化,NoC 中数据安全传输变得至关重要。以…...
OpenGL(4)着色器
文章目录 一、着色器1、什么是着色器?2、着色器类型2.1、顶点着色器(Vertex Shader)2.2、片段着色器(Fragment Shader) 3、着色器属性3.1、layout 属性3.2、in 属性3.3、out 属性3.4、总结 4、示例 前言: 在…...
PHP批量去除Bom头的方法
检查的代码: <?php$dir __DIR__; $files new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir));foreach ($files as $file) {if ($file->isFile() && pathinfo($file, PATHINFO_EXTENSION) php) {$content file_get_contents(…...
51单片机的keil c51软件安装教程
Keil(C51)介绍、下载、安装与注册_keil c51-CSDN博客 参考 安装 不一定是这个大小,也可以下载别的版本KEID C51 注册 加入芯片型号 …...
JavaScript基本知识
文章目录 一、JavaScript基础1.变量(重点)1-1 定义变量及赋值1-2 变量的命名规则和命名规范判断数据类型: 2.数据类型转换2-1 其他数据类型转成数值2-2 其他数据类型转成字符串2-3 其他数据类型转成布尔 3.函数3-1函数定义阶段3-2函数调用阶段…...
导数,积分及常用公式
导数定义: 求导是数学计算中的一个计算方法,它的定义就是,当自变量的增量趋于零时,因变量的增量与自变量的增量之商的极限。在一个函数存在导数时,称这个函数可导或者可微分。可导的函数一定连续。不连续的函数一定…...
鸿蒙应用开发—ZDbUtil高效使用数据库
文章目录 介绍下载安装基本使用注解TableIdColumnOneToOne 使用方法定义实体类初始化数据库并根据被Table注解的类创建表创建表查数据插入数据删除数据清空数据 参考 介绍 ZDbUtil是一款基于SQLite的鸿蒙数据库框架,通过注解标注实体类与属性,让数据更能…...
强化学习(赵世钰版)-学习笔记(7.时序差分学习)
本章是课程算法与方法中的第四章,介绍的时序差分学习算法是基于随机近似方法设计的强化学习方法,也是model-free的方法。 时序差分算法是一种近似估计策略状态值的算法,具体的形式如下: 本质上是在当前t时刻,被访问到的…...
正则表达式入门及常用的正则表达式
正则表达式(Regular Expression,简称 Regex)是一种强大的文本处理工具,用于匹配、查找和替换字符串中的特定模式。以下是入门指南和常用正则表达式示例: 一、正则表达式入门 1. 基本语法 符号说明示例.匹配任意单个字…...
大白话如何在 Vue 项目中进行路由懒加载?
大白话如何在 Vue 项目中进行路由懒加载? 在 Vue 项目里,路由懒加载是种很实用的技术,它能让你在需要的时候再去加载对应的路由组件,而不是在项目启动时就把所有组件都加载进来,这样能加快项目的启动速度。下面就详细…...
手动实现一个RTTI系统
在 C 中,RTTI(Runtime Type Information,运行时类型信息)是一组允许程序在运行时获取对象类型信息的机制 。虽然C通过虚接口的方式提供了良好的抽象,但是对于一个复杂的系统,过于依赖抽象而忽略业务的复杂性…...
智能化水利监管:无人机视频在违章行为识别中的应用
随着我国经济社会的快速发展,水利工程建设规模不断扩大,但随之而来的违章建设行为也日益增多。传统的人工巡查方式效率低下,难以满足当前监管需求。无人机技术以其灵活性和高效性,为水利工程建设监管提供了新的解决方案。本文将探…...
力扣练习之确定两个字符串是否接近
目录 题目: 题解: 详细题解 题目: 如果可以使用以下操作从一个字符串得到另一个字符串,则认为两个字符串 接近 : 操作 1:交换任意两个 现有 字符。 例如,abcde -> aecdb 操作 2࿱…...
Word 小黑第21套
对应大猫22 设置表格为页面的80%:表布局 -属性 -表格 指定宽度80% 度量单位改成百分比 段落组 -中文版式 在表格上下方留一行空段(如果表格太大改一下样式)插入横线 边框线 (右击横线 -图片 修改样式) 段落 -取消对于…...
mingw32编译ffmpeg
ffmpeg https://gitee.com/mirrors/ffmpeg.git 使用msys2的mingw32 pacman -S mingw-w64-x86_64-toolchain compile ./confiure --enable-static --disable-shared --enable-gpl --target-oswin32 mingw32-make -j4 提示编译错误,msys2里面的路径是/d/tools/msys2…...
设计模式C++
针对一些经典的常见的场景, 给定了一些对应的解决方案,这个就叫设计模式。 设计模式的作用:使代码的可重用性高,可读性强,灵活性好,可维护性强。 设计原则: 单一职责原则:一个类只做一方面的…...
使用 Excel 实现绩效看板的自动化
引言 在日常工作中,团队的绩效监控和管理是确保项目顺利进行的重要环节。然而,面临着以下问题: 数据分散:系统中的数据难以汇总,缺乏一个宏观的团队执行情况视图。看板缺失:系统本身可能无法提供合适…...
ngx_openssl_conf_t
ngx_openssl_conf_t 定义在 src\event\ngx_event_openssl.c typedef struct {ngx_uint_t engine; /* unsigned engine:1; */ } ngx_openssl_conf_t; 1. 这个结构体的目的是存储与 OpenSSL 引擎相关的配置信息。 2. engine 字段用于标识是否启用 OpenSSL 的硬件加速引擎…...
深度学习环境配置指令大全
文章目录 环境配置官网/博客合集清华镜像站anaconda官网pytorch官网pytorch历史库官网pytorch与cuda对应版本下载博客torch与torchvision与python对应关系python与pytorch对应关系 环境相关创建环境激活环境退出环境删除环境检查环境冲突 安装相关安装requirementsconda安装con…...
Netty启动源码NioEventLoop剖析accept剖析read剖析write剖析
学习链接 NIO&Netty - 专栏 Netty核心技术十–Netty 核心源码剖析Netty核心技术九–TCP 粘包和拆包及解决方案Netty核心技术七–Google ProtobufNetty核心技术六–Netty核心模块组件Netty核心技术五–Netty高性能架构设计 聊聊Netty那些事儿 - 专栏 一文搞懂Netty发送数…...
<03.13>八股文补充知识
import java.lang.reflect.*; public class Main {public static void main(String[] args) throws Exception {// 获取 Class 对象//1. 通过类字面量Class<?> clazz Person.class;//2 通过对象实例化String str "Hello";Class<?> clazz_str str.ge…...
[HUBUCTF 2022 新生赛]messy_traffic
下载附件 看到文件类型直接用wireshark打开,对MySQL协议进行追踪流,并没有什么发现,后面对NO.437发现有用信息,http追踪流 发现**system(‘cat passwd.txt’);**这里是在打开查看passwd.txt,密码是"SignUpForHUBU…...
条款1:理解模版性别推导
目录 问题引出 情况1:ParamType是个指针或引用,但不是个万能引用。 情况2:ParamType是个万能引用 情况3:ParamType既非指针也非引用 问题引出 函数模板大致形如: template<typename T> void f(ParamType p…...
kafka连问
1,kafka多消费者指部署多个服务消费节点吗 2,多个消费节点自动组成消费组吗 3,消费者组与多消费节点关系 4,一个分区,多个消费者,可以保证有序消费吗 5,kafka如何实现顺序消费,一…...
Linux中基础开发工具详细介绍
目录 软件包管理器什么是软件包Linux软件生态 yum具体操作查看软件包安装软件卸载软件注意事项 编辑器VimLinux编辑器-vim使用vim的基本概念快速编辑的指令 编译器gcc/g背景知识gcc编译选项预处理(进行宏替换)编译(生成汇编)汇编(生成机器可识…...
浅谈时钟启动和Systemlnit函数
时钟是STM32的关键,是整个系统的心脏,时钟如何启动,时钟源如何选择,各个参数如何设置,我们从源码来简单分析一下时钟的启动函数Systemlnit()。 Systemlnit函数简介 我们先来看一下源程序的注释…...
社交软件频繁更新,UI 设计在其中扮演什么角色?
在当今数字化时代,社交软件已成为人们日常生活中不可或缺的一部分。随着科技的飞速发展和用户需求的不断变化,社交软件更新频率日益加快。在这频繁更新的背后,UI 设计扮演着至关重要的角色,它如同社交软件的 “门面担当” 与 “交…...
SQLMesh 系列教程:解锁SQLMesh的宏与变量魔法
在数据库流水线开发中,代码复用与动态配置是提升效率的核心诉求。SQLMesh以其独特的宏系统与用户定义变量机制,重新定义了SQL生成的灵活性。与传统模板引擎不同,SQLMesh的宏并非简单的字符串替换,而是基于语义理解的智能代码重构—…...
React篇之three渲染
需求:拖拽右侧面板,里面的three模型能够自适应 import { useEffect, useState, useRef } from react import ./App.css import * as THREE from three; import { GLTFLoader } from three/addons/loaders/GLTFLoader.js; import { debounce } from loda…...
PHP与前端框架的无缝集成:最佳实践与案例分析
PHP与前端框架的无缝集成:最佳实践与案例分析 在现代Web开发中,PHP作为后端语言与前端框架的集成已成为一种常见的开发模式。无论是传统的MVC架构,还是现代的SPA(单页应用),PHP与前端框架的无缝集成能够显…...
Redis内存淘汰策略
Redis 是一种高性能的键值存储系统,广泛用于缓存、消息队列等场景。由于 Redis 数据存储在内存中,而内存资源有限,因此需要内存淘汰策略来管理内存的使用。Redis 提供了多种内存淘汰策略,可以根据不同的应用场景选择合适的策略。 …...
Facebook 的框架及技术栈
一、前端框架与技术 React.js 及其生态系统 核心原理与特点 React.js 是 Facebook 开源的用于构建用户界面的 JavaScript 库。它的核心概念是组件化,将用户界面拆分成一个个独立的、可复用的组件。每个组件都有自己的状态(state)和属性&#…...
QT中的布局管理
在 Qt 中,布局管理器(如 QHBoxLayout 和 QVBoxLayout)的构造函数可以接受一个 QWidget* 参数,用于指定该布局的父控件。如果指定了父控件,布局会自动将其管理的控件添加到父控件中。 在你的代码中,QHBoxLa…...
如何学习VBA_3.2.20:DTP与Datepicker实现日期的输入
我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的劳动效率,而且可以提高数据处理的准确度。我推出的VBA系列教程共九套和一部VBA汉英手册,现在已经全部完成,希望大家利用、学习。 如果…...
在 LaTeX 中强制表格位于页面顶部
在 LaTeX 中强制表格位于页面顶部,可以通过以下 多种方法结合使用,按优先级推荐: 方法 1:使用 [!t] 位置限定符 原理:通过 [!t] 强制 LaTeX 优先将表格放置在页面顶部(Top),! 表示忽…...
dify+mysql的诗词助手
目录 数据库表结构: 数据库查询的http服务搭建: 流程引擎搭建: 开始, HTTP查询数据库, LLM数据分析, 直接回复, 效果测试: 下载链接: 数据库表结构:…...
PyTorch 入门学习
目录 PyTorch 定义 核心作用 应用场景 Pytorch 基本语法 1. 张量的创建 2. 张量的类型转换 3. 张量数值计算 4. 张量运算函数 5. 张量索引操作 6. 张量形状操作 7. 张量拼接操作 8. 自动微分模块 9. 案例-线性回归案例 PyTorch 定义 PyTorch 是一个基于 Python 深…...
【视频】SRS将RTMP转WebRTC、HLS流;获取RTSP转其它流
1、安装依赖库 sudo apt install tclsh sudo apt install cmake sudo apt install autotools-dev automake m4 perl sudo apt install libtool2、源码安装 1)下载源码 https://github.com/ossrs/srs/releases/tag/v5.0-r32)配置、编译 ./configure && make -j83、…...
linux中如何查询文件夹大小
在 Linux 中,可以使用 du 命令查看文件夹大小。以下是常用方法: 标题1. 查看文件夹大小 du -sh /path/to/directory-s:显示总大小。 -h:以易读格式(如 KB、MB、GB)显示大小。 标题2:查看文件…...
MySQL增删改查操作 -- CRUD
个人主页:顾漂亮 目录 1.CRUD简介 2.Create新增 使用示例: 注意点: 3.Retrieve检索 使用示例: 注意点: 4.where条件查询 前置知识:-- 运算符 比较运算符 使用示例: 注意点…...
uniapp+Vue3 组件之间的传值方法
一、父子传值(props / $emit 、ref / $refs) 1、props / $emit 父组件通过 props 向子组件传递数据,子组件通过 $emit 触发事件向父组件传递数据。 父组件: // 父组件中<template><view class"container">…...