Eine Vektorsuche SQLite -Erweiterung von VSAG, einer Vektor -Indexierungsbibliothek, die für die Ähnlichkeitssuche verwendet wird.
Diese Erweiterung bietet eine virtuelle Tabelle, in der Benutzer VSAG Vektoren hinzufügen und die Suche nach KNN -Stil durchführen können. Das Schema der virtuellen Tabelle lautet:
CREATE TABLE vsag (id PRIMARY KEY , vec, distance)SQL unten in SQLite ausführen:
.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] ' ; Wenn alles gut funktioniert, wird die SELECT ausgegeben:
1 | 1.0 2 | 1341.0 3 | 173241.0
Gehen Sie zur Release -Seite, um die neueste vorgebaute Binärdatei herunterzuladen.
Setzen Sie nach dem Download LD_LIBRARY_PATH Env so, wo Sie es entpacken.
Installieren Sie zunächst Abhängigkeiten (getestet auf Ubuntu, andere Linux -Verteilungen können sich auf die Entwicklung beziehen.md):
sudo apt install -y gfortran libomp-15-dev lcovDann erstellen Sie dieses Projekt:
cargo build Setzen Sie nach dem Erstellen LD_LIBRARY_PATH , um SQLite zu sagen, wo wir unsere SO -Dateien finden sollen:
so_file= $( find target -name libvsag.so | head -n1 )
cp " ${so_file} " ./target/debug
export LD_LIBRARY_PATH=./target/debug