https://github.com/kpetridis24/k-nearest-vectors
Parallel-Indexed multi-dimensional query engine for efficient vector search
https://github.com/kpetridis24/k-nearest-vectors
euclidean-distances golang goroutines high-performance-computing index k-nearest-neighbours parallel-programming vectors vptree
Last synced: about 1 month ago
JSON representation
Parallel-Indexed multi-dimensional query engine for efficient vector search
- Host: GitHub
- URL: https://github.com/kpetridis24/k-nearest-vectors
- Owner: kpetridis24
- Created: 2023-06-06T23:34:13.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2023-09-05T14:33:01.000Z (almost 3 years ago)
- Last Synced: 2025-12-19T00:41:41.328Z (6 months ago)
- Topics: euclidean-distances, golang, goroutines, high-performance-computing, index, k-nearest-neighbours, parallel-programming, vectors, vptree
- Language: Go
- Homepage:
- Size: 115 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# k-nearest-vectors
Parallel-Indexed multi-dimensional query engine for efficient vector search
## Motivation
Computing the **distance between high dimensional vectors** is widely applicable in modern technologies. It is used extensively in
vector embeddings databases, like **Weaviate**, when performing queries. Although approximate methods, like **Locality Sensitive Hashing
(LSM)** are useful and make the applications scalable when increase in data occurs, deterministic/brute force implementations are also handy
in smaller datasets.
## Content
I have 3 major implementations in this codebase:
- **Naive approach** to compute the k nearest vectors to a given query
- **Parallel approach** using **Go routines**, parallelizing the naive approach
- **Hybrid Indexed-Parallel approach** using **Vantage Point Tree** structure, optimised for space efficiency and branch pruning with parallelized search across branches