A typescript/javascript library to connect Epsilla vector database
npm install epsillajs
docker pull epsilla/vectordb
docker run -d -p 8888:8888 epsilla/vectordb
const epsillajs = require('epsillajs');
// connect to vectordb
const db = new epsillajs.EpsillaDB();
// load and use a database
const db_path = 'tmp/epsilla';
const load = await db.loadDB(db_path, 'MyDB');
db.useDB("MyDB");
// create a table in the current database
await db.createTable('MyTable',
[
{"name": "ID", "dataType": "INT"},
{"name": "Doc", "dataType": "STRING"},
{"name": "Embedding", "dataType": "VECTOR_FLOAT", "dimensions": 4}
]
);
// insert records
await db.insert('MyTable',
[
{"ID": 1, "Doc": "Berlin", "Embedding": [0.05, 0.61, 0.76, 0.74]},
{"ID": 2, "Doc": "London", "Embedding": [0.19, 0.81, 0.75, 0.11]},
{"ID": 3, "Doc": "Moscow", "Embedding": [0.36, 0.55, 0.47, 0.94]},
{"ID": 4, "Doc": "San Francisco", "Embedding": [0.18, 0.01, 0.85, 0.80]},
{"ID": 5, "Doc": "Shanghai", "Embedding": [0.24, 0.18, 0.22, 0.44]}
]
);
// search
const query = await db.query('MyTable',
{
queryField: "Embedding",
queryVector: [0.35, 0.55, 0.47, 0.94],
limit: 5
} // response fields, filter and with distance are optional
);
// drop a table
await db.dropTable('MyTable');
// unload a database from memory
await db.unloadDB('MyDB');