Elasticsearch:使用 Base64 编码字符串加速向量摄取 📅 发布时间:2026/7/9 7:09:46 👁️ 浏览次数: 作者来自 Elastic Jim Ferenczi, Benjamin Trent 及 Ignacio Vera Sequeiros介绍在 Elasticsearch 中使用 Base64 编码字符串来加速向量摄取。从向量搜索到强大的 REST APIElasticsearch 为开发者提供了最全面的搜索工具集。深入 GitHub 上的示例 notebooks 来尝试新东西。你也可以今天就开始你的免费试用或在本地运行 Elasticsearch。我们正在提升 Elasticsearch 中向量的摄取速度。现在在 Elastic Cloud Serverless 和 v9.3 中你可以将向量以 Base64 编码字符串的形式发送到 Elasticsearch这将为你的摄取流水线带来立竿见影的收益。这一变化将解析 JSON 中向量的开销降低了一个数量级这意味着在 DiskBBQ 上索引吞吐量几乎提升了 100%在 分层可导航小世界 HNSW 工作负载中也提升了大约 20%。在这篇博客中我们将更深入地看看 Base64 编码字符串以及它为向量摄取带来的改进。问题是什么在 Elastic我们一直在寻找改进向量搜索能力的方法无论是增强现有的存储格式还是引入新的存储格式。比如最近我们新增了一种对磁盘更友好的存储格式 DiskBBQ并启用了基于 NVIDIA cuVS 的向量索引。在这两种情况下我们原本预计摄取速度会有显著提升。然而当这些改动完全集成到 Elasticsearch 之后提升幅度却没有达到我们的预期。对摄取过程进行的 flamegraph 分析清楚地表明了问题所在JSON 解析已经成为主要瓶颈之一。解析 JSON 需要遍历数组中的每一个元素并将文本格式的数字转换为 32 位浮点数这个过程开销非常大。为什么使用 Base64 编码字符串解析向量最高效的方式是直接从其二进制表示读取其中每个元素都是一个 32 位浮点值。然而JSON 是一种基于文本的格式在其中包含二进制数据的方式就是使用 Base64 编码字符串。Base64 只是一个将二进制数据转换为文本的编码方案。{ “emb” : [1.2345678, 2.3456789, 3.4567891] }我们现在可以将向量以 Base64 编码字符串的形式发送{ “emb” : ”P54GUUAWH5pAXTwI” }值得吗我们的基准测试表明值得。在解析 1,000 个 JSON 文档时使用 Base64 编码字符串而不是浮点数组性能提升超过一个数量级。代价是一个很小的 编码 / 解码 权衡客户端进行 Base64 编码服务器端为解码创建一个临时字节数组但换来的好处是消除了昂贵的逐元素数值解析。给我一些摄取数据当我们使用不同方式运行 so_vector rally track 时可以在实际中看到这些改进。实际提升取决于每种存储格式的索引速度。对于 bbq_disk索引吞吐量提升大约 100%而对于 bbq_hnsw由于索引本身更慢提升更接近 20%。从 Elasticsearch v9.2 开始向量默认会从 _source 中排除并在内部以 32 位浮点值存储。这个行为同样适用于 Base64 编码的向量因此在搜索时索引格式的选择对你来说是完全透明的。客户端支持为向量索引增加一种新格式可能需要对摄取流水线进行修改。为此在 v9.3 中Elasticsearch 官方客户端可以在 32 位浮点值向量和 Base64 编码字符串之间进行相互转换。你可能需要查看对应客户端文档了解具体实现方式。例如下面是一个使用 Python 客户端实现 bulk 加载的示例代码片段from elasticsearch.helpers import bulk, pack_dense_vector def get_next_document(): for doc in dataset: yield { _index: my-index, _source: { title: doc[title], text: doc[text], emb: pack_dense_vector(doc[emb]), }, } result bulk( clientclient, chunk_sizechunk_size, actionsget_next_document, stats_onlyTrue, )与使用浮点数进行批量摄取的唯一区别在于embedding 现在被包裹在 pack_dense_vector() 辅助函数中。结论通过将 JSON 浮点数组切换为 Base64 编码向量我们消除了 Elasticsearch 向量摄取管道中剩余的最大瓶颈之一数字解析。这个简单的改动带来了巨大的效果对于 DiskBBQ 工作负载吞吐量可提升至 2×即使对于较慢的索引策略如 HNSW也能获得显著提升。由于向量已经以二进制格式内部存储并默认从 _source 中排除因此这一改进在搜索时完全透明。在 v9.3 中官方客户端支持到位后采用 Base64 编码只需对现有摄取代码进行最小改动同时即可获得即时性能提升。如果你要索引大量 embeddings尤其是在高吞吐量或 serverless 环境中Base64 编码向量现在是将数据快速高效导入 Elasticsearch 的最佳方式。有关实现细节可参考相关 Elasticsearch issue 和 pull request#111281 和 #135943。原文https://www.elastic.co/search-labs/blog/base64-encoded-strings-vector-ingestion
揭秘浏览器渲染引擎的“像素炼金术” 当你坐在电脑前,随手在地址栏输入一个网址并按下回车,短短几百毫秒内,屏幕上便会跳跃出绚丽的色彩、精致的排版和流畅的动画。对于大多数用户而言,这似乎是理所当然的“魔法”,但在这一瞬间的背后,浏览器内… 2026/5/17 2:30:09
常用的大语言模型有什么 目前常用的大语言模型(Large Language Models, LLMs)主要包括以下几类,涵盖开源与闭源、学术与商业用途的代表性模型:1. OpenAI 系列GPT-3 / GPT-3.5:广泛用于 ChatGPT(免费版)等应用。GPT-4 / … 2026/5/17 2:30:08
数字图像处理篇---图像的正交变换 你可以把它想象成一种 “用积木描述图画” 的数学魔法。核心比喻:用乐高积木拼图假设你有一幅复杂的图画(比如一张人脸照片)。现在,你不是直接存储每个像素的颜色,而是试图用一套 标准化的乐高积木块 来重新搭建它。标… 2026/5/17 2:30:08
2026 年零碳工厂企业能碳管控平台选型指南 在双碳战略全面落地、工业低碳转型加速推进的大环境下,零碳工厂建设已经成为制造企业绿色升级、提升市场竞争力的核心抓手。2026 年,五部门联合发布的零碳工厂建设指导意见全面落地执行,数字化能碳管控平台正式列为零碳工厂评审硬性准入条件。… 2026/7/9 7:09:46
GPT详细介绍 学习目标:本节内容需要大致了解GPT的架构原理、预训练任务、微调任务2018年6月, OpenAI公司发表了论文“Improving Language Understanding by Generative Pre-training”《用生成式预训练提高模型的语言理解力》, 推出了具有1.17亿个参数的GPT(Generati… 2026/7/9 7:03:45
5款国产大模型API接入实战:通义千问、文心一言、混元、盘古、ChatGLM 3.6B 成本与延迟对比 国产大模型API实战指南:成本、性能与选型策略在AI技术快速迭代的今天,国产大模型已从实验室走向产业应用。对于开发者而言,如何选择适合自身业务需求的大模型API服务,成为技术决策中的关键一环。本文将深入分析通义千问、文心一言… 2026/7/9 7:01:44
电商日报分析助手 各类运营与内容工具分环节使用思路分享 很多电商店主、运营和内容团队在日常工作里常会遇到流程断裂的问题:选品调研、商品卖点文案、短视频脚本、投放数据日报分散在不同软件,每日整理的运营记录、竞品分析、内容修改稿没有统一归档载体;多人分工协作时,运营、文案、剪… 2026/7/9 6:57:43
同一个模型,只改“外壳“性能狂飙22倍,Agent的瓶颈根本不在模型本身 你以为 Agent 不够好用是模型不够聪明?最近一个实验把这个认知彻底打翻了。一、一个颠覆认知的实验Hugging Face 的机器学习工程师 Joel Niklaus 最近做了件很"无聊"的事——他拿同一个开源模型 DeepSeek-V4-Pro,在法律 Agent 基准测试上跑了一… 2026/7/9 6:57:43
PHP 反序列化链构造实战:从 DASCTF ezpop 题解到 3 种常见魔术方法利用 PHP 反序列化链构造实战:从魔术方法到完整 POP 链设计在 CTF 竞赛和实际安全测试中,PHP 反序列化漏洞一直是 Web 安全领域的重要突破口。本文将系统性地讲解如何从零开始构造一条完整的 POP(Property-Oriented Programming)链&… 2026/7/9 6:57:43
机器视觉与PLC集成:轮毂缺陷检测与字符识别误差控制在0.2mm内 机器视觉与PLC集成:轮毂缺陷检测与字符识别误差控制在0.2mm内的技术实现轮毂作为汽车关键零部件,其表面质量直接影响行车安全与美观。传统人工检测效率低且易漏检,而采用机器视觉与PLC集成方案可实现微米级精度检测。本文将深入解析高精度视觉… 2026/7/9 0:01:04
GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比 GBase 8a与MySQL 8.0:ALTER TABLE语法差异深度解析与实战指南1. 两种数据库的ALTER TABLE能力全景对比在数据库架构设计和运维过程中,表结构变更(DDL操作)是不可避免的需求。GBase 8a作为国产分析型数据库代表,与开源M… 2026/7/9 0:03:06
【大数据毕业设计】基于多源旅游数据的景区热度分析与推荐系统的设计与实现 基于 Django 的旅游偏好挖掘与景区推荐系统(源码+文档+远程调试,全bao定制等) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am… 2026/7/9 0:05:09
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/8 20:15:17
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/8 14:25:08