Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mdarshad1000/vectorlite

VectorLite is a lightweight, easy-to-use, vector database with various indexing techniques. Primarily built to study how vector DBs work and how they can be used in practice.
https://github.com/mdarshad1000/vectorlite

Last synced: about 6 hours ago
JSON representation

VectorLite is a lightweight, easy-to-use, vector database with various indexing techniques. Primarily built to study how vector DBs work and how they can be used in practice.

Awesome Lists containing this project

README

        

> This is a work in progress.

# VectorLite
VectorLite is a lightweight, easy-to-use, and scalable vector database. It's primarily built to explore the workings of vector databases and their practical applications.

## Components of VectorLite

1. **Database**: The core container for tables and indexes.
2. **Table**: Stores and manages vectors and their metadata.
3. **Index**: Facilitates efficient vector search.
- **Types of Indexes**:
- Flat (Brute Force)
- IVF (Inverted File Index)
- HNSW (Hierarchical Navigable Small World)
- PQ (Product Quantization)
- SQ (Scalar Quantization)

4. **Embedder**: Converts text to vectors using various models.
- Sentence Transformer
- OpenAI Embeddings
- Cohere

### Methods in Index Class
1. **Construct the Index**: Initializes a new index.
2. **Search Vectors in the Index**: Retrieves vectors closest to the query vector.

### Methods in Table Class
1. **Initialise the Table**: Sets up a new table for storing vectors.
2. **Add Vectors to the Table**: Inserts new vectors into the table.
3. **Search Vectors in the Table**: Finds vectors within the table based on a query.
4. **Query the Index**: Searches the index using table data.
5. **Delete Vectors from the Table**: Removes vectors from the table.

### TODO:
- [x] Implement Flat Index
- [x] Implement IVF Index
- [ ] Implement HNSW Index
- [ ] Implement PQ Index
- [ ] Implement SQ Index
- [ ] **Persist to Disk**: Implement serialization and deserialization for data persistence.
- [ ] **Add Metadata Filtering**: Allow filtering search results based on metadata.
- [ ] **Search Across Multiple Tables**: Introduce join functionality for querying multiple tables.

- [ ]