Una búsqueda vectorial SQLite Extension horneada por VSAG, una biblioteca de indexación vectorial utilizada para la búsqueda de similitud.
Esta extensión proporciona una tabla virtual que permite a los usuarios agregar vectores a VSAG y hacer una búsqueda de estilo KNN. El esquema de la tabla virtual es:
CREATE TABLE vsag (id PRIMARY KEY , vec, distance)Ejecutar SQL a continuación en 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 todo funciona bien, la SELECT saldrá:
1 | 1.0 2 | 1341.0 3 | 173241.0
Vaya a la página de lanzamiento para descargar el último binario prebuilt.
Después de la descarga, configure LD_LIBRARY_PATH env a donde lo descompone.
Primeras dependencias de instalación (probadas en Ubuntu, otras distribuciones de Linux pueden referirse al desarrollo.md):
sudo apt install -y gfortran libomp-15-dev lcovLuego construya este proyecto:
cargo build Después de la compilación, configure LD_LIBRARY_PATH para decirle a SQLite dónde encontrar nuestros archivos SO:
so_file= $( find target -name libvsag.so | head -n1 )
cp " ${so_file} " ./target/debug
export LD_LIBRARY_PATH=./target/debug