Havenask 介绍与选型指南
阿里巴巴开源大规模分布式搜索引擎 Havenask:HA3/问天引擎血统、C++ 读写分离架构、功能特性、适用边界,及与 Elasticsearch/OpenSearch/Manticore 的量化选型对比。
Havenask 介绍与选型指南
目标:面向需要自建大规模搜索服务的架构师与运维工程师,系统介绍阿里巴巴开源搜索引擎 Havenask 的来龙去脉、核心架构、功能特性、适用边界,并给出与 Elasticsearch、OpenSearch、Manticore Search 的量化选型对比。本文为认知与选型篇,全部信息均来自官方仓库、官方文档站与权威技术媒体的联网溯源,逐项标注来源与查询日期(统一查询日期:2026-10-23),不含本地实测内容。
一、环境信息
本文是联网溯源的认知类文档,不依赖本地实验环境,全部结论来自下列公开渠道(查询日期均为 2026-10-23):
- 官方 GitHub 仓库与 README:
https://github.com/alibaba/havenask - 官方文档站(问天搜索引擎):
https://havenask.net - GitHub Releases 订阅源(版本发布时间线):
https://github.com/alibaba/havenask/releases.atom - shields.io 实时徽章(星数、开源许可、最新 Release、提交活跃度)
- 阿里云开发者社区《Ha3搜索引擎在线查询与离线索引构建解析》(2018-04-26)
- 阿里云《开放搜索产品简介》白皮书(2019-12-05,含 HA3 系统模块组成图)
- InfoQ《揭秘阿里核心引擎,走近阿里巴巴开源自研搜索引擎 Havenask》(2023 年报道)
- 阿里云 OpenSearch 召回引擎版产品页:
https://www.aliyun.com/activity/bigdata/opensearch/ha3 - 官方 LLM 集成说明:仓库
llm/README.md
版本基准:截至查询日 2026-10-23,官方最新稳定版为 v1.2.0(2024-04-10 发布)。
二、软件概述
2.1 定位与血统
Havenask 是阿里巴巴集团自研的搜索引擎,也是阿里巴巴内部广泛使用的大规模分布式检索系统,支持了包括淘宝、天猫、菜鸟、高德、饿了么、全球化在内整个阿里巴巴集团的搜索业务,为用户提供高性能、低成本、易用的搜索服务(来源:官方仓库 README,2026-10-23)。
它的前身是阿里搜索团队开发的 HA3 搜索引擎平台——早在 2018 年 4 月,阿里云开发者社区就公开过《Ha3搜索引擎在线查询与离线索引构建解析》一文,说明"Ha3 是阿里巴巴搜索团队开发的搜索引擎平台,它为阿里集团包括淘宝、天猫在内的核心业务提供搜索服务支持"(来源:developer.aliyun.com/article/585400,2026-10-23 查询)。阿里云《开放搜索产品简介》白皮书(2019-12-05)进一步给出中文名:"HA3 是阿里自主研发的新一代分布式实时搜索系统,中文名叫问天 3"。基于 HA3 的内部技术积累,Havenask 于 2022 年 11 月开源首个版本 v0.1,并在 2023 年云栖大会期间发布开源正式版本(来源:InfoQ 报道,2026-10-23 查询)。
💡 技术拓展:Havenask 与"阿里云 OpenSearch"是两个名字相近但形态不同的产品。GitHub 官方 README 明确说明:基于 Havenask 打造的行业 AI 搜索产品——阿里云 OpenSearch,将持续在阿里云上为企业级开发者提供全托管、免运维的一站式智能搜索服务。也就是说,开源的 Havenask 是引擎本体(可自托管),阿里云 OpenSearch 是基于该引擎的商业托管服务。而社区里另一个"OpenSearch"(AWS 主导的开源项目,fork 自 Elasticsearch 7.10.2)与阿里云 OpenSearch 无任何关系,选型时务必区分三个"OpenSearch/Havenask"实体。
2.2 版本发布时间线
来源:GitHub Releases 订阅源 releases.atom(查询日期 2026-10-23):
| 版本 | 发布时间(UTC) | 备注 |
|---|---|---|
| v0.1 | 2022-11-08 | 首次开源 |
| v0.2.2 | 2023-01-04 | 早期迭代 |
| v0.3.0 | 2023-03-23 | 早期迭代 |
| 1.0.0 | 2023-12-11 | 首个 1.x 正式版 |
| 1.1.0 | 2024-03-08 | 1.x 迭代 |
| v1.2.0 | 2024-04-10 | 当前最新稳定版,README 引用版本 |
对版本节奏的解读:Havenask 采取"低频大版本"策略,从 v0.1 到 v1.2.0 共 6 个正式 Release,平均约 3-4 个月一个大版本;自 2024 年 4 月 v1.2.0 之后暂无新 Release,shields.io 提交活跃度徽章显示近一个月提交数为 0、最近提交发生在 4 月(shields.io,查询日期 2026-10-23)。选型时应把"迭代节奏放缓"作为一项明确风险纳入评估。
2.3 社区与许可关键数据(量化)
来源:shields.io 实时徽章(查询日期 2026-10-23):
| 指标 | 数值 |
|---|---|
| GitHub Stars | 1.8k |
| 开源许可 | Apache-2.0 |
| 最新 Release | v1.2.0 |
| 近一月提交数 | 0(最近提交在 4 月) |
| 官方交流渠道 | 钉钉技术交流群(README 公布) |
解读:1.8k 星在搜索引擎赛道属于中等偏小规模社区(同赛道 Elasticsearch 为 78k、OpenSearch 14k、Manticore Search 12k,见第七章对比表),Apache-2.0 许可对商业友好,社区以中文开发者与阿里系生态为主。
三、核心架构
3.1 读写分离的检索架构
阿里云 OpenSearch 召回引擎版产品页对这套引擎的架构描述为:"阿里巴巴集团自主研发的大规模分布式检索系统,是读写分离的搜索引擎,底层采用 C++ 实现,可以稳定高效的支持海量数据检索,同时支持数据实时更新、毫秒级生效,引擎内置多种分析器,支持含向量索引的丰富索引类型,SQL 查询语法与多表在线 join"(来源:aliyun.com OpenSearch 召回引擎版页,2026-10-23 查询)。
"读写分离"意味着查询链路与写入/索引构建链路是两套独立伸缩的子系统:
- 在线检索子系统:承接查询请求,由查询协调节点与检索执行节点(Searcher)组成,查询在倒排/正排/摘要等索引结构上执行后汇聚返回。2018 年的 HA3 解析文章将其称为"搜索体系中的在线部分",与离线索引构建部分明确分离(来源:developer.aliyun.com/article/585400)。
- 离线索引构建子系统:将全量/增量数据加工成可被 Searcher 加载的索引。开源版本中对应 Build Service(bs)等组件,由 hape 运维工具统一拉起(来源:官方 README 部署命令与 v1.2.0 发布件脚本,2026-10-23 查询)。
3.2 系统模块与运维形态
阿里云《开放搜索产品简介》白皮书(2019-12-05)给出了 HA3 的系统模块组成:Admin 是整个系统的大脑,负责节点角色分配、调度决策、FailOver 处理、状态监测、动态扩容;Amonitor 是系统的性能状态监控模块。该白皮书同时总结 HA3 具备"自动容灾、动态扩容、秒级实时"三大能力。开源 Havenask 继承了这一体系,并将其收敛为两种分发形态(来源:官方 README,2026-10-23):
- ha3_runtime:可直接运行的运行时镜像,无需编译代码,包含了问天引擎的可执行文件;
- ha3_dev:用于开发测试的镜像,包含编译问天引擎所需的各种依赖库和头文件。
开源版的日常运维入口是官方提供的 hape 命令行工具(单机模式下管理 Build Service、Broker、Searcher、QRS 等进程的启停与表管理),配合 create_container.sh 官方脚本完成环境初始化。README 对运行环境的要求为:运行镜像确保机器内存大于 4G、CPU 大于 2 核、磁盘大于 20G;开发镜像要求内存大于 10G、磁盘大于 50G;单机模式需要确保本机能免密 ssh 登录自己。
💡 技术拓展:搜索引擎的部署架构常见两种流派。一是"Elasticsearch 式"一体化节点——同一节点既承载数据分片又参与集群协调,节点角色可用参数细分但进程统一,扩缩容和运维心智负担低;二是"Havenask/HA3 式"读写分离——检索(Searcher/QRS)与索引构建(Build Service)物理分离、由调度器统一编排,写入链路的批量构建与在线检索互不干扰,更适合超大规模、写入吞吐与查询吞吐都要极致的电商级场景,代价是组件更多、运维链路更长。Havenask 属于后者,这也是它在阿里内部支撑"千亿级数据实时检索"的架构前提(README 口径,见第四章)。
四、功能特性
来源:官方仓库 README(英文与中文版一致,查询日期 2026-10-23):
- 极致的工程性能:支持千亿级数据实时检索,百万 QPS 查询,百万 TPS 写入,毫秒级查询延迟与秒级数据更新。
- C++ 的底层构建:对性能、内存、稳定性有更高保障。
- SQL 查询支持:支持 SQL 语法便捷查询,查询体验更友好。
- 丰富的插件机制:支持各类业务插件,拓展性强。
- 支持图化开发:实现算法分钟级快速迭代,定制能力丰富,在新一代智能检索场景下的支持效果优秀。
- 支持向量检索:可通过与插件配合实现多模态搜索,满足更多场景的搜索服务搭建需求。
两点补充(均有官方来源):
- SQL 多表在线 join 与多种分析器:阿里云 OpenSearch 召回引擎版产品页明确"引擎内置多种分析器,支持含向量索引的丰富索引类型,SQL 查询语法与多表在线 join"(2026-10-23 查询)。
- 与大模型结合的 RAG 能力:官方仓库
llm/README.md说明"本项目将 Havenask 与大模型结合,Havenask 作为向量数据库,实现基于文档的问答系统。可以使用 ChatGPT 服务,也可以全部基于开源方案(ChatGLM-6b)实现本地的私有部署"(2026-10-23 查询)。
对性能口径的解读:上述"千亿级检索、百万 QPS/TPS"为阿里巴巴官方公布的内部业务口径,属于官方上限能力描述而非可复现基准;中小团队在评估时应以自身数据规模与压测为准,但该口径能说明其架构面向的数量级远超一般自托管搜索引擎的默认设计区间。
五、快速开始(官方最小示例)
以下为官方 README v1.2.0 的最小上手流程(来源:GitHub README,查询日期 2026-10-23;命令为官方原文,容器名以 havenask-120 为例代入)。官方唯一推荐的分发形态是 Docker 镜像,前置要求:已安装并启动 Docker,运行机内存 >4G、CPU >2 核、磁盘 >20G,单机模式需本机免密 ssh 自登录。
# 1. 下载官方创建脚本(v1.2.0 发布件)
wget https://github.com/alibaba/havenask/releases/download/v1.2.0/create_container.sh
# 2. 拉取官方运行时镜像
docker pull registry.cn-hangzhou.aliyuncs.com/havenask/ha3_runtime:latest
# 3. 创建 Havenask 运行环境(脚本内完成镜像拉取、运行与初始化)
./create_container.sh havenask-120 registry.cn-hangzhou.aliyuncs.com/havenask/ha3_runtime:latest
# 4. 进入环境(脚本生成 sshme 入口)
./havenask-120/sshme
进入后即可用 hape 拉起单机检索服务并建表写入查询:
/ha3_install/hape start havenask
/ha3_install/hape create table -t in0 -s /ha3_install/example/cases/normal/in0_schema.json -p 1
/ha3_install/sql_query.py --query "insert into in0 (createtime,hits,id,title,subject)values(1,2,4,'test', 'test')"
/ha3_install/sql_query.py --query "select * from in0"
官方脚本与 hape 各命令的完整行为、参数与实测回显,见本专栏部署与命令篇,此处仅作认知性展示。
六、适用场景与限制
6.1 适合的场景
- 电商级大规模商品搜索:Havenask 的原生主场——淘宝、天猫商品搜索正是其内部最大用户(来源:InfoQ 报道),支持类目/属性/个性化等复杂检索诉求,插件机制支持算法分钟级迭代。
- 超大规模实时检索中台:官方口径的千亿级数据、百万 QPS/TPS 数量级,适合把检索能力作为中台统一输出给多条业务线(菜鸟物流订单实时检索、盒马搜索均为内部案例,来源:InfoQ)。
- SQL 化检索服务:业务团队习惯 SQL 时,可用 SQL 语法直接查询,降低搜索引擎 DSL 的学习成本(README + 阿里云召回引擎版页)。
- RAG 向量召回:作为向量数据库与 LLM 结合构建文档问答,官方提供 llm 参考实现,支持 ChatGLM-6b 等开源方案全本地部署(llm/README.md)。
6.2 明确的限制与选型风险
- 仅提供容器化分发:官方不提供 rpm/deb/二进制包,运行与开发均以 Docker 镜像为唯一形态(README),对不允许容器化的环境不友好;脚本内部还需要
--privileged特权运行与 ramfs 挂载(v1.2.0 发布件 create_container.sh,2026-10-23 查询),对宿主机权限有较高要求。 - 迭代节奏放缓:最新稳定版 v1.2.0 发布于 2024-04-10,此后至查询日(2026-10-23)无新 Release,近一月提交 0 次(releases.atom + shields.io)。开源社区处于低维护状态,深度定制与升级依赖自身工程能力。
- 社区规模有限:1.8k stars,第三方教程、客户端 SDK、周边生态远少于 Elasticsearch/OpenSearch 生态;文档以中文为主,英文资料有限。
- 运维组件链路长:读写分离 + 离线构建 + 调度编排的多组件形态,单机伪集群起步尚可,真正分布式部署需要理解 bs/searcher/qrs 等角色与 hippo 调度,学习成本高于一体化引擎。
- 默认无开箱 Web 控制台:官方分发不含类似 Kibana 的可视化管控台,图化开发能力主要面向阿里内部工具链。
七、同类选型对比
7.1 量化对比表
数据来源与口径:四个项目的最新 Release、Stars、License 均取自 shields.io 实时徽章(查询日期 2026-10-23);性能与特性口径取自各自官方仓库/官网 README;站内已有专栏文档附可点击链接。
| 维度 | Havenask | Elasticsearch | OpenSearch | Manticore Search |
|---|---|---|---|---|
| 维护方 | 阿里巴巴(内部 HA3/问天 3 开源) | Elastic 公司 | OpenSearch 软件基金会(AWS 主导) | Manticore 团队(Sphinx 分支) |
| 底层语言 | C++ | Java(基于 Lucene) | Java(基于 Lucene) | C++ |
| 最新版本(2026-10-23) | v1.2.0(2024-04-10) | v9.5.5 | v3.9.0 | release-29.9.0 |
| 版本节奏 | 6 个 Release/约 1.5 年,2024-04 后放缓 | 高频小版本 | 高频小版本 | 高频小版本 |
| 开源许可 | Apache-2.0 | SSPL + Elastic License 2.0(v8 起,非 Apache-2.0) | Apache-2.0 | GPL-3.0 |
| GitHub Stars | 1.8k | 78k | 14k | 12k |
| 官方性能口径 | 千亿级实时检索、百万 QPS/TPS | 未给统一口径(生态内以 Rally 基准为准) | 未给统一口径 | 官方强调中小数据量下性能显著优于 ES(官方博客口径) |
| SQL 查询 | 原生 SQL(含多表在线 join) | SQL 接口(有限方言) | SQL/PPL(含 Pipelined 处理语言) | 原生 SQL 风格(类 MySQL) |
| 向量检索 | 支持(配合插件,多模态) | 原生 kNN(v8 起) | 原生 kNN | 原生向量索引 |
| 生态与客户端 | 以阿里系/中文社区为主,客户端少 | 最完善(Kibana/APM/各语言 SDK) | 完善(OpenSearch Dashboards/SDK) | 中等(SQL 客户端/多语言 SDK) |
| 分发形态 | 仅 Docker 镜像(runtime/dev 双镜像) | 包/压缩包/镜像/托管全形态 | 包/压缩包/镜像/托管全形态 | 包/镜像/DEB/RPM |
| 部署心智 | 读写分离多组件 + hape 编排 | 一体化节点 + 内置协调 | 一体化节点 + 内置协调 | 单二进制,极简 |
| 典型规模区间 | 十亿~千亿级(官方口径) | 百万~百亿级 | 百万~百亿级 | 百万~十亿级 |
7.2 如何选型(如果…则…)
- 如果业务规模在亿级~千亿级文档、需要读写分离的检索中台、团队有 C++/搜索引擎工程能力兜底——选 Havenask,它是唯一把阿里电商级搜索内核完整开源的选择,但需自行承担社区低维护带来的升级与排障成本。
- 如果追求生态最全、人才最好招、插件与可视化最成熟的通用搜索/日志双栈——选 《Elasticsearch 9.5.5 介绍与选型指南》(注意 v8+ 许可不再是 Apache-2.0,商用托管需评估)。
- 如果要 Apache-2.0 许可 + ES 兼容生态 + 开源治理——选 《OpenSearch 3.9 介绍与选型指南》。
- 如果是中小数据量、单机极简、SQL 优先、对资源占用敏感的检索场景——选 Manticore Search(C++ 单进程,运维成本最低)。
- 如果只是给应用加"搜索框"(全文检索/前缀纠错/中文分词),数据量百万级以内,MeiliSearch、Typesense 等轻量引擎往往比上述四者都更省心。
一句话总结:Havenask 的不可替代性在于"淘宝搜索同源的 C++ 读写分离内核 + 千亿级口径";它的代价是"仅容器分发 + 社区活跃度低"。规模没到、运维人手不足时,OpenSearch/Manticore 是更稳妥的默认项;规模到了、且需要自建检索中台时,Havenask 才会体现价值。
八、参考链接
- 官方仓库与 README:
https://github.com/alibaba/havenask(查询日期 2026-10-23) - 官方文档站(问天搜索引擎):
https://havenask.net(查询日期 2026-10-23) - GitHub Releases:
https://github.com/alibaba/havenask/releases(版本时间线,查询日期 2026-10-23) - 官方 LLM 向量检索集成说明:
https://github.com/alibaba/havenask/blob/main/llm/README.md(查询日期 2026-10-23) - 阿里云开发者社区《Ha3搜索引擎在线查询与离线索引构建解析》:
https://developer.aliyun.com/article/585400(2018-04-26) - 阿里云《开放搜索产品简介》白皮书(2019-12-05):
http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/pdf/opensearch-brief-manual-cn-zh-2019-12-05.pdf - 阿里云 OpenSearch 召回引擎版产品页:
https://www.aliyun.com/activity/bigdata/opensearch/ha3(查询日期 2026-10-23) - InfoQ《揭秘阿里核心引擎,走近阿里巴巴开源自研搜索引擎 Havenask》:
https://www.infoq.cn/news/zLmWSSGfqzTAz0gzEG8r(查询日期 2026-10-23) - 天池《Havenask 开源搜索引擎》专题:
https://tianchi.aliyun.com/specials/promotion/Havenask_OpenSourceSearchEngine(查询日期 2026-10-23) - 站内同类组件:《Elasticsearch 9.5.5 介绍与选型指南》、《OpenSearch 3.9 介绍与选型指南》