Extract relationships between vectors based on distance:
const relationships = await db.extractRelationships(0.3, {
metric: 'cosine',
includeMetadata: true
});
Find clusters of related vectors:
const communities = await db.extractCommunities(0.5, {
metric: 'euclidean',
includeMetadata: true
});
const results = await db.search(queryVector, {
k: 10,
method: 'hybrid',
weights: {
text: 0.7,
semantic: 0.3
}
});
const queries = [
{ vector: [...], k: 5 },
{ vector: [...], k: 10 }
];
const results = await db.batchSearch(queries, {
maxBatchSize: 100,
maxWorkers: 4
});
const filter = [
{ field: 'category', operator: '$in', value: ['article', 'blog'] },
{ field: 'rating', operator: '$gte', value: 4.5 },
{ field: 'tags', operator: '$regex', value: '^tech.*' }
];
const results = await db.search(queryVector, {
k: 10,
filters: filter
});
await db.buildIndexes({
method: 'hnsw',
efConstruction: 200,
M: 16
});
const stats = await db.getStats();
console.log(stats.indices);
const db = new Database({
monitoring: {
enable: true,
interval: 60000,
logToConsole: true
}
});
db.on('metrics', (snapshot) => {
console.log('Search QPS:', snapshot.metrics.search.queriesPerMinute);
console.log('Cache Hit Rate:', snapshot.metrics.cache.hitRate);
});
const db = new Database({
persistence: {
saveIntervalMs: 300000, // Save every 5 minutes
dbPath: './database',
useCompression: true
}
});
// Save current state
await db.save();
// Load from saved state
await db.load('./database/backup.db');
// Monitor vector additions
db.on('vector:add', (data) => {
console.log(`Added vector ${data.id} with ${data.dimensions} dimensions`);
});
// Monitor search operations
db.on('search:complete', (data) => {
console.log(`Search completed in ${data.duration}ms`);
});
- Use bulk operations for better performance
- Enable monitoring in production
- Configure auto-save for data safety
- Use appropriate partition sizes
- Optimize index parameters for your use case