GoVector 开发文档¶
GoVector 是一个完全使用 Go 语言编写的轻量化嵌入式向量数据库。它提供 Qdrant 兼容的 API 接口,HNSW 索引实现 blazing-fast 的近似最近邻(ANN)搜索,以及通过 BoltDB 实现的持久化本地存储。
在本地 AI、桌面应用和边缘计算的时代,你并不总是需要像 Milvus 或 Qdrant 这样的重量级分布式向量集群。GoVector 旨在成为向量数据库中的 SQLite - 一个轻量级、高性能的解决方案,可以直接嵌入到你的应用程序中。
🚀 核心特性¶
- 纯 Go 实现 & 无 CGO 依赖:可跨平台编译(Windows、macOS、Linux、边缘设备),无需复杂的 C/C++ 依赖
- Qdrant 兼容 API:与 Qdrant 相同的 REST API 接口,可作为直接替代品
- 高性能:针对单节点性能优化,支持数百万向量的亚毫秒级搜索延迟
- HNSW 索引:工业级图索引,实现 O(log N) 的搜索复杂度,默认启用
- 持久化存储:使用 BoltDB 和 Protocol Buffers 实现超快速持久化,数据在重启后仍然保留
- 高级过滤:支持与 Qdrant 相同的 payload 过滤(精确匹配、范围、前缀、正则、包含)
- SQ8 量化:内置 8 位标量量化,减少大规模数据的磁盘占用
- 双模式部署:嵌入式库(零网络开销)或带有 REST API 的独立微服务
- 统一 CLI 和 TUI:强大的命令行界面,带有交互式终端用户界面
📖 快速链接¶
- 快速开始 - 几分钟内上手 GoVector
- 命令行指南 - 命令行界面使用方法
- 嵌入式模式 - 在 Go 应用中使用 GoVector 作为库
- 微服务模式 - 将 GoVector 作为独立服务器运行
- API 参考 - 完整的 API 文档
- 架构概览 - 了解 GoVector 的架构
🏗️ 架构概述¶
GoVector 的架构由以下几个核心组件构成:
- 存储引擎:使用
go.etcd.io/bbolt和 Protocol Buffers 实现持久化存储 - 索引模块:实现 HNSW(层次可导航小世界)和 Flat 索引
- 集合管理:为集合提供命名空间隔离和 CRUD 操作
- API 层:同时提供 Go 库 API 和与 Qdrant 兼容的 HTTP REST API
- 量化模块:实现 SQ8 量化以优化内存使用
📄 许可证¶
GoVector 采用 MIT 许可证。详情请参阅 LICENSE。