vectordb 的未来:过滤能力、更多 ANN 算法与 Serverless 路线图功能全景一览
【免费下载链接】vectordbA Python vector database you just need - no more, no less.项目地址: https://gitcode.com/gh_mirrors/vect/vectordb
vectordb 是一款"够用就好"的 Python 向量数据库(A Python vector database you just need - no more, no less),内置精确搜索与 HNSW 两种 ANN 近似最近邻算法,支持完整的增删改查(CRUD)、本地运行、作为 gRPC/HTTP 服务部署,以及一键上云。这篇文章带你完整了解它的功能现状,以及即将发布的过滤能力、更多 ANN 算法和 Serverless 扩展路线图。
一、vectordb 是什么:一款极简的 Python 向量数据库
向量数据库(Vector Database)是存放文本、图片等"嵌入向量"的仓库,擅长按语义相似度检索,是大模型 RAG、以图搜图等应用的核心组件。
vectordb的设计哲学可以用官方一句话概括:"你刚好需要它——不多,也不少":
- 🧩Pythonic 体验:用 DocArray 的 dataclass 语法定义文档 Schema,几行代码就能定义一个带
embedding字段的文档类型 - 🔎两种内置 ANN 算法:
InMemoryExactNNVectorDB(精确暴力搜索)和HNSWVectorDB(基于 HNSW 近似搜索),源码分别位于 vectordb/db/inmemory_exact_vectordb.py 和 vectordb/db/hnsw_vectordb.py - 📦完整 CRUD:
index、search、update、delete四大操作,本地库与远程客户端共用同一套 API(见 vectordb/db/base.py 中的VectorDB基类) - ☁️三种部署方式:本地进程内使用、本地 serve 成服务、一键部署到云端
二、当前功能全景:两种 ANN 算法怎么选?
两种数据库对应不同规模与精度需求,核心差异一览:
| 数据库类型 | 搜索方式 | 适用场景 | 关键配置 |
|---|---|---|---|
InMemoryExactNNVectorDB | 全量精确搜索(Exact NN) | 中小规模、要求 100% 准确 | workspace持久化路径 |
HNSWVectorDB | HNSW 图索引近似搜索 | 大规模数据、追求高查询速度 | space(l2/ip/cosine)、M、ef、ef_construction等 |
💡 小贴士:HNSW 的
ef控制"查询速度 vs 精度"的权衡,M控制图的最大出边数,调参时参考 HNSW 索引器实现中的默认值(ef=10、M=16)起步即可。
两种数据库都遵循"Schema 泛型"写法——把文档类型通过[]传进去,例如HNSWVectorDB[MyDoc],底层会由 vectordb/db/executors/typed_executor.py 自动生成对应类型的执行器。完整可运行的最小示例见 example.py:定义一个 128 维MyDoc,建索引后对查询批量搜索。
三、路线图前瞻:三大升级方向详解
官方 README.md 的 Roadmap 板块透露了接下来的演进方向,以下三项最值得新手关注:
1. 增强的过滤能力(Filtering):在 ANN 搜索之上加"筛选条件"
目前vectordb的搜索是"纯相似度"检索。未来将支持在 ANN 搜索之上叠加过滤条件,比如"只在我收藏的文档里搜相似图片""只检索 2024 年后的记录"。
这对真实业务非常关键——生产环境中"先过滤元数据、再算相似度"几乎是刚需。等该功能启用后,官方会把它加进 Features 列表(README 中已预留了占位说明)。
2. 更多 ANN 算法:不止 InMemory 和 HNSW
官方目标是支持"更宽的 ANN 搜索算法谱系"。目前InMemoryExactNNVectorDB与HNSWVectorDB是起步组合,后续还会有新的向量索引实现加入,让你可以在精度、速度、内存占用之间按需挑选,而不必更换整个数据库框架。
3. Serverless 扩展:从 0~1 到 0~N 副本
这是路线图中最具想象空间的一项:
- 现状:云端部署已支持 serverless 模式,副本可在0 到 1之间自动伸缩——没请求时缩到 0,省成本(部署配置见 vectordb/db/base.py 中
deploy()的autoscale参数) - 目标:扩展到0 到 N副本,既能"零闲置",又能在流量高峰自动横向扩容
- 配套计划:支持在更多云平台部署(Expanded Deployment Options),不再局限于单一云环境
4. 彩蛋方向:更强的可定制性
官方还希望让 Python 开发者能轻松定制vectordb的搜索行为与输入输出 Schema,打造"你要的数据库"。这与它底层由 DocArray 驱动搜索逻辑、Jina 驱动服务与扩展的架构一脉相承。
四、本地 → 服务 → 云端:三步部署指南
vectordb的部署路径设计得非常顺滑,三种模式可以无缝切换:
1️⃣ 本地使用:pip 安装即用
pip install vectordb2️⃣ 本地 Serve 成服务:gRPC / HTTP / Websocket 三协议
本地建好的库可以直接serve出来,并支持Shards(分片,降延迟)与Replicas(副本,提吞吐与可用性,多副本间用 RAFT 算法同步索引)两个扩展参数。也可以直接用内置 CLI:vectordb serve --db example:db(实现见 vectordb/main.py)。
3️⃣ 云端部署:一条命令上线
把数据库实例写进一个 Python 文件(参考 example.py),然后执行vectordb deploy --db example:db,即可部署到 Jina AI Cloud,获得专属访问端点。部署后的实例还可以用jc命令列表、暂停、恢复或删除,全程 Serverless 计费。
客户端访问统一走 vectordb/client/client.py 的
ClientMyDoc,与本地库调用方式完全一致——这正是"no more, no less"的体现。
五、总结:新手该关注什么?
🎯一句话总结:vectordb用最小的 API 面覆盖了向量数据库的核心能力(CRUD + ANN 搜索 + 服务化 + 上云),而路线图瞄准的过滤能力、更多 ANN 算法、0~N Serverless 弹性恰好补齐了它走向生产环境的关键拼图。
给新手的建议:
- 数据量小、要求精确 → 先跑
InMemoryExactNNVectorDB - 数据量大、要低延迟 → 换
HNSWVectorDB,调ef/M - 需要对外提供服务 →
db.serve()三行代码起服务 - 想省运维 → 直接
vectordb deploy上云,享受 0~1 自动伸缩,并关注 0~N 扩容进展
如果你有自己的需求或遇到使用问题,官方 README 中提供了社区交流渠道,欢迎参与共建。
【免费下载链接】vectordbA Python vector database you just need - no more, no less.项目地址: https://gitcode.com/gh_mirrors/vect/vectordb
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考