The HNSW-SQLite library combines the speed of Hierarchical Navigable Small World (HNSW) graphs for fast approximate nearest neighbor search with the reliability and portability of SQLite for persistent storage.
📦 Installation
- npm:
npm install hnswsqlite
- GitHub:
github.com/praveencs87/hnswsqlite
🚀 How to Use
const { HNSWSqlite } = require('hnswsqlite');
// Initialize or open an index
const index = new HNSWSqlite({
dbPath: 'my_vectors.db',
dimensions: 128,
space: 'l2' // or 'cosine'
});
// Add a vector
await index.addItem('item123', [0.1, 0.2, ..., 0.128]);
// Search for nearest neighbors
const results = await index.search([0.1, 0.2, ..., 0.128], 10);
console.log(results);
// Save and close
await index.close();
For more usage examples and API details, see the API Documentation.
🔎 Use Cases
Semantic Search in Text and Documents:
Find semantically similar documents, articles, or code snippets using vector embeddings.
Image and Multimedia Retrieval:
Quickly find visually similar images or audio/video content by comparing feature vectors.
Recommendation Systems:
Suggest similar products, content, or users based on embeddings.
Anomaly Detection:
Identify outliers or unusual data points in high-dimensional datasets.
Scientific and Medical Data Analysis:
Search for similar gene sequences, patient records, or medical images.
Edge & Mobile Applications:
Use SQLite’s lightweight footprint and HNSW’s speed for on-device search and recommendation.
Knowledge Graphs & Entity Linking:
Resolve and link entities across datasets using vector similarity.
💡 Why Use HNSW-SQLite?
- Persistence: Reliable storage with SQLite.
- Performance: Fast, scalable nearest neighbor search.
- Portability: Cross-platform, no server required.
- Simplicity: Easy integration with minimal dependencies.
Links:
npm package
GitHub repository
API Documentation
Let me know if you’d like this inserted at a specific location in your README.md or if you want any further customizations!
Top comments (0)