Une extension SQLite de recherche vectorielle cuite par VSAG, une bibliothèque d'indexation vectorielle utilisée pour la recherche de similitude.
Cette extension fournit une table virtuelle permettant aux utilisateurs d'ajouter des vecteurs à VSAG et à faire une recherche de style KNN. Le schéma de la table virtuelle est:
CREATE TABLE vsag (id PRIMARY KEY , vec, distance)Exécuter SQL ci-dessous dans SQLite:
.load target / debug / libvsag_sqlite
CREATE VIRTUAL TABLE test_table
USING vsag (dimension = 3 );
INSERT INTO test_table (id, vec)
VALUES ( 1 , ' [1,2,3] ' ), ( 2 , ' [11,22,33] ' ), ( 3 , ' [111,232,333] ' );
-- KNN style query
SELECT
id,
distance
FROM
test_table
WHERE
vec MATCH ' [1,2,4] ' ; Si tout fonctionne bien, le SELECT sera sorti:
1 | 1.0 2 | 1341.0 3 | 173241.0
Accédez à la page de sortie pour télécharger le dernier binaire préfère.
Après le téléchargement, définissez LD_LIBRARY_PATH ENV à l'endroit où vous le décompressez.
Les premières dépendances d'installation (testées sur Ubuntu, d'autres distributions Linux peuvent se référer à Development.md):
sudo apt install -y gfortran libomp-15-dev lcovPuis construire ce projet:
cargo build Après la construction, définissez LD_LIBRARY_PATH pour dire à Sqlite où trouver nos fichiers SO:
so_file= $( find target -name libvsag.so | head -n1 )
cp " ${so_file} " ./target/debug
export LD_LIBRARY_PATH=./target/debug