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_searchknn_param 等特定函數,根據 L2、餘弦或內積距離尋找最接近的向量。

適用對象

適用於希望在本地資料庫中加入向量搜尋功能,但又不願承擔管理獨立向量資料庫伺服器的開銷之 SQLite 使用者。

主要特色

  • 高效率:使用 HNSW 進行 ANN 搜尋,並透過 Google Highway 實現 SIMD 加速,聲稱查詢速度顯著快於類似 SQLite 擴展。
  • 跨平台:已預先編譯適用於 Windows、Linux 和 MacOS(x64 與 ARM)。
  • 可調參數:完全控制 HNSW 參數(如 ef_constructionM),以在速度與準確度之間取得平衡。
  • 元資料過濾:支援 rowid 過濾的謂詞下推,允許使用者在單一查詢中結合向量搜尋與元資料過濾。
  • 持久化:支援透過 SQL 命令將向量索引儲存至磁碟並從磁碟載入。
  • 彈性 API:提供用於向量 JSON 序列化/反序列化的輔助函數。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案