69 lines
2.0 KiB
JavaScript
69 lines
2.0 KiB
JavaScript
/**
|
|
* Basic usage example for Ruvector (Node.js)
|
|
*
|
|
* Demonstrates:
|
|
* - Creating a database
|
|
* - Inserting vectors
|
|
* - Searching for similar vectors
|
|
*/
|
|
|
|
const { VectorDB } = require('ruvector');
|
|
|
|
async function main() {
|
|
console.log('🚀 Ruvector Basic Usage Example (Node.js)\n');
|
|
|
|
// 1. Create a database
|
|
console.log('1. Creating database...');
|
|
const db = new VectorDB({
|
|
dimensions: 128,
|
|
storagePath: './examples_basic_node.db',
|
|
distanceMetric: 'cosine'
|
|
});
|
|
console.log(' ✓ Database created with 128 dimensions\n');
|
|
|
|
// 2. Insert a single vector
|
|
console.log('2. Inserting single vector...');
|
|
const vector = new Float32Array(128).fill(0.1);
|
|
const id = await db.insert({
|
|
id: 'doc_001',
|
|
vector: vector,
|
|
metadata: { text: 'Example document' }
|
|
});
|
|
console.log(` ✓ Inserted vector: ${id}\n`);
|
|
|
|
// 3. Insert multiple vectors
|
|
console.log('3. Inserting multiple vectors...');
|
|
const entries = Array.from({ length: 100 }, (_, i) => ({
|
|
id: `doc_${String(i + 2).padStart(3, '0')}`,
|
|
vector: new Float32Array(128).fill(0.1 + i * 0.001),
|
|
metadata: { index: i + 2 }
|
|
}));
|
|
|
|
const ids = await db.insertBatch(entries);
|
|
console.log(` ✓ Inserted ${ids.length} vectors\n`);
|
|
|
|
// 4. Search for similar vectors
|
|
console.log('4. Searching for similar vectors...');
|
|
const queryVector = new Float32Array(128).fill(0.15);
|
|
const results = await db.search({
|
|
vector: queryVector,
|
|
k: 5,
|
|
includeMetadata: true
|
|
});
|
|
|
|
console.log(` ✓ Found ${results.length} results:`);
|
|
results.forEach((result, i) => {
|
|
console.log(` ${i + 1}. ID: ${result.id}, Distance: ${result.distance.toFixed(6)}`);
|
|
});
|
|
console.log();
|
|
|
|
// 5. Get database stats
|
|
console.log('5. Database statistics:');
|
|
const total = db.count();
|
|
console.log(` ✓ Total vectors: ${total}\n`);
|
|
|
|
console.log('✅ Example completed successfully!');
|
|
}
|
|
|
|
main().catch(console.error);
|