1yefuwang1/vectorlite
Fast, SQL powered, in-process vector search for any language with an SQLite driver
解决的问题
Vectorlite 是一个可运行时加载的 SQLite 扩展,为 SQLite 添加了快速向量搜索功能。开发者可以直接在 SQL 接口内执行近似最近邻(ANN)搜索,无需维护独立的向量数据库,同时在 Windows、macOS 和 Linux 上保持高性能。
工作原理
该项目实现了基于 hnswlib 库的 SQLite 虚拟表模块,用于高效索引和搜索。使用 Google 的 highway 库进行 SIMD 加速的向量距离计算,显著加快了高维向量的计算速度。用户可以创建向量虚拟表,使用标准 SQL 插入数据,并通过 knn_search 和 knn_param 等特定函数,基于 L2、余弦或内积距离查找最接近的向量。
适用人群
适用于希望在本地数据库中添加向量搜索功能,但又不想承担管理独立向量数据库服务器开销的 SQLite 用户。
主要亮点
- 高性能:使用 HNSW 进行 ANN 搜索,并通过 Google Highway 实现 SIMD 加速,声称查询速度显著快于同类 SQLite 扩展。
- 跨平台:已预先编译适用于 Windows、Linux 和 MacOS(x64 和 ARM)。
- 可调参数:完全控制 HNSW 参数(如
ef_construction和M),以在速度与精度之间取得平衡。 - 元数据过滤:支持
rowid过滤的谓词下推,允许用户在单个查询中结合向量搜索与元数据过滤。 - 持久化:支持通过 SQL 命令将向量索引保存到磁盘并从磁盘加载。
- 灵活的 API:提供用于向量 JSON 序列化/反序列化的辅助函数。
相关
- 项目
- 项目
- 项目
- 项目
- 项目