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は、拡張を足さずにベクトル検索を始められます。クイックスタートで比べてみてください。