跳转至

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.etcd.io/bbolt 和 Protocol Buffers 实现持久化存储
  • 索引模块:实现 HNSW(层次可导航小世界)和 Flat 索引
  • 集合管理:为集合提供命名空间隔离和 CRUD 操作
  • API 层:同时提供 Go 库 API 和与 Qdrant 兼容的 HTTP REST API
  • 量化模块:实现 SQ8 量化以优化内存使用

📄 许可证

GoVector 采用 MIT 许可证。详情请参阅 LICENSE

🔗 有用链接