Uma extensão SQLite de pesquisa vetorial assada pela VSAG, uma biblioteca de indexação de vetores usada para pesquisa de similaridade.
Essa extensão fornece uma tabela virtual, permitindo que os usuários adicionem vetores à pesquisa no estilo VSAG e KNN. O esquema da tabela virtual é:
CREATE TABLE vsag (id PRIMARY KEY , vec, distance)Execute o SQL abaixo no 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] ' ; Se tudo funcionar bem, a SELECT será lançada:
1 | 1.0 2 | 1341.0 3 | 173241.0
Vá para a página de liberação para baixar o mais recente binário pré -construído.
Após o download, defina LD_LIBRARY_PATH ENV para onde você o descompô.
Primeira instalação dependências (testadas no Ubuntu, outras distribuições Linux podem se referir ao desenvolvimento.md):
sudo apt install -y gfortran libomp-15-dev lcovEm seguida, construa este projeto:
cargo build Após a construção, defina LD_LIBRARY_PATH para dizer à SQLite onde encontrar nossos arquivos SO:
so_file= $( find target -name libvsag.so | head -n1 )
cp " ${so_file} " ./target/debug
export LD_LIBRARY_PATH=./target/debug