asopi tech
asopi techIndie Developer

Asopitech VS

sqlite-vec vs Alopex DB

SQLiteのベクトル検索拡張sqlite-vecのvec0仮想テーブル、メタデータ列、パーティションキーを、Alopex DBと比べて紹介します。

更新: 2026/10/12

sqlite-vecとは

sqlite-vecは、SQLiteにベクトル検索を足す拡張です。純粋なCで書かれ、依存ライブラリを持たず、SQLiteが動く場所で動きます。sqlite-vssの後継です。

仕組み

  • vec0仮想テーブル:float、int8、バイナリのベクトルを、vec0仮想テーブルに保存して問い合わせます。
  • KNN検索:ベクトル列に対する match と k の条件で、近いベクトルを探します。
  • ベクトル以外の列:メタデータ列、補助列、パーティションキー列を持てます。メタデータ列の条件は、KNN検索の中で絞り込みに使います。
  • パーティションキー:キーごとにベクトル索引を内部で分け、= の条件で探す範囲を絞ります。

主な機能

Python、Node.js、Ruby、Go、Rustのパッケージがあり、ブラウザのWASMでも動きます。

制限

  • sqlite-vecはv1前の版で、互換性を壊す変更があります。
  • メタデータ列は16個までです。UNIQUEやNOT NULLの制約は付けられません。
  • KNN検索のメタデータ列の条件は、比較演算子だけに対応します。IS NULL、LIKE、GLOB、REGEXP、関数を使うと、エラーか誤った結果になります。
  • 補助列は、KNN検索のWHERE句に使えません。
  • パーティションキーの使い方を誤ると、分けすぎてKNN検索が遅くなります。

Alopex DBとの違い

どちらも、アプリに組み込んだデータベースの中で、SQLとベクトル検索を使えます。

Alopex DBは、ベクトル型とHNSW索引を本体に持ちます。テーブルの行とベクトルを同じトランザクションで更新し、データは .alopex の1つのファイルにまとまります。

ベクトル型とHNSW索引を最初から持つAlopex DBは、拡張を足さずにベクトル検索を始められます。クイックスタートで比べてみてください。

参考資料

関連ページ