Skip to content
Back to the catalog
Project vector-search-engineDatabasesAdvancedBeta

Build a vector search engine

Build a vector index with exact search, filters, and a simplified HNSW graph.

Build it in your language

The tester treats your program as a black box: any language works. These are just the most convenient ones for this project.

Guide language

The stage guides read in this language. Only languages this project is fully translated into show up here; the interface language does not change.

What this project is about

Vector search retrieves items by mathematical proximity instead of text matching. Here you will build the engine beneath many semantic retrieval systems.

The program receives NDJSON commands, keeps identified vectors, and answers queries with deterministic ordering. You will first establish an exact baseline and then build a measurable approximate index.

Roadmap

5 stages across 3 phases. Every stage comes with its guide and its tests: you move on when they pass.

  1. Phase 12 stages

    Vector foundations

    Define the store, distance metrics, and a trustworthy exhaustive search.

    1. 01Create the vector store
    2. 02Measure proximity
  2. Phase 21 stage

    Query engine

    Add filters, replacements, and deterministic query rules.

    1. 01Search exact neighbours
  3. Phase 32 stages

    Approximate index

    Build and evaluate a simplified HNSW graph to accelerate retrieval.

    1. 01Build the HNSW graph
    2. 02Query and evaluate the index

Before you start

A local engine that stores vectors and metadata, computes Euclidean and cosine distance, runs exact k-NN, applies filters, and queries a simplified HNSW index with reproducible results.

  • key-value-db
    Beta

    A key-value database

    A storage engine with a WAL, indexes and compaction. Understand how and when your data is persisted.

    Advanced14 stages~22 hDatabases
    walíndicescompactación+1

    Go · Rust

  • redis
    Beta

    Build your own Redis

    Implement the RESP protocol, an event loop and key expiry. A real server that talks to redis-cli.

    Intermediate10 stages~14 hDatabases
    resptcpeventos+1

    Go · Rust · Python

  • sqlite-reader
    Beta

    Read a SQLite file

    Open a real .db, walk its B-trees and run SELECTs. Reverse engineering of a documented binary format.

    Advanced10 stages~15 hDatabases
    formato binariobtreesql

    Go · Python · Java