1yefuwang1/vectorlite

Fast, SQL powered, in-process vector search for any language with an SQLite driver

何を解決するか

Vectorlite は SQLite 用のランタイムロード可能な拡張機能であり、高速なベクトル検索機能を追加します。開発者は SQL インターフェース内で近似最近傍(ANN)検索を直接実行でき、別個のスタンドアロンのベクトルデータベースを維持する必要がなくなりつつ、Windows、macOS、Linux で高いパフォーマンスを維持できます。

動作方法

このプロジェクトは、hnswlib ライブラリをバックエンドに使用した SQLite 仮想テーブルモジュールを実装しています。効率的なインデックス作成と検索を実現しています。Google の highway ライブラリを用いて SIMD 加速されたベクトル距離計算を行い、高次元ベクトルの計算を大幅に高速化しています。ユーザーはベクトル用の仮想テーブルを作成でき、標準的な SQL を使ってデータを挿入し、knn_searchknn_param といった特定の関数を使って L2、コサイン、または内積距離に基づいて最も近いベクトルを検索できます。

対象ユーザー

SQLite を使用し、別個のベクトルデータベースサーバーを管理するオーバーヘッドなしにローカルデータベースにベクトル検索機能を追加したい開発者向けです。

特徴

  • 高パフォーマンス: ANN 検索に HNSW を使用し、Google Highway を通じた SIMD 加速により、類似の SQLite 拡張機能よりも著しく高速なクエリ速度を実現しています。
  • クロスプラットフォーム: Windows、Linux、macOS(x64 および ARM)向けに事前にコンパイル済みです。
  • カスタマイズ可能: ef_constructionM などの HNSW パラメータを完全に制御でき、速度と精度のバランスを調整できます。
  • メタデータフィルタリング: rowid フィルタのプッシュダウンをサポートしており、1つのクエリ内でベクトル検索とメタデータフィルタリングを組み合わせられます。
  • 永続化: SQL コマンドを使ってベクトルインデックスをディスクに保存・読み込みできます。
  • 柔軟な API: ベクトルの JSON シリアライズ/デシリアライズ用のヘルパー関数を提供しています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト