Векторный поиск SQLite Extension, запеченное VSAG, библиотекой индексации вектора, используемой для поиска сходства.
Это расширение предоставляет виртуальную таблицу, позволяющая пользователям добавлять векторы в VSAG и выполнять поиск в стиле KNN. Схема виртуальной таблицы:
CREATE TABLE vsag (id PRIMARY KEY , vec, distance)Выполнить SQL ниже в 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] ' ; Если все работает хорошо, SELECT будет выводить:
1 | 1.0 2 | 1341.0 3 | 173241.0
Перейдите на страницу выпуска, чтобы загрузить последний предварительно построенный бинар.
После загрузки установите LD_LIBRARY_PATH env, где вы его разканитесь.
Первая установка зависимостей (протестированные на Ubuntu, другие распределения Linux могут ссылаться на Development.md):
sudo apt install -y gfortran libomp-15-dev lcovЗатем создайте этот проект:
cargo build После сборки установите LD_LIBRARY_PATH , чтобы сообщить SQLite, где найти наши файлы SO:
so_file= $( find target -name libvsag.so | head -n1 )
cp " ${so_file} " ./target/debug
export LD_LIBRARY_PATH=./target/debug