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 序列化/反序列化的輔助函數。
相關
- 專案
- 專案
- 專案
- 專案
- 專案