OverclockDB

A high-performance, in-memory text search database written in Rust. Fast full-text search with faceting, filtering, sorting, and context-aware numeric overlays.

Features

๐Ÿ”

Full-Text Search

BM25-based relevance scoring with Unicode-aware tokenization, stemming, and stop words support.

๐Ÿง 

Semantic Search

Vector-based similarity search with hybrid BM25+vector ranking using HNSW index.

โšก

Sharding

Hash-based document sharding with parallel search for 2-3x speedup on large collections.

โœ๏ธ

Typo Tolerance

Fuzzy search using SymSpell algorithm with O(1) lookup for edit distance 1-2.

๐Ÿ“Š

Faceted Search

Efficient facet counting using roaring bitmaps with hierarchical category support.

๐Ÿ˜

PostgreSQL Sync

Native synchronization from PostgreSQL with real-time updates and atomic sync.

๐Ÿ’พ

Persistence

Write-ahead logging (WAL) with LZ4-compressed snapshots for durability.

๐ŸŒ

REST API

Axum-based HTTP API with JSON request/response for easy integration.

Performance

<5ms Text Search (P99)
50K/s Indexing Throughput
3x Sharded Speedup
386ยตs Sharded Search (100K docs)

Quick Start

Build and Run

# Clone the repository
git clone https://github.com/overclockdb/overclockdb.git
cd overclockdb

# Build in release mode
cargo build --release

# Run the server
cargo run --release

The server starts on http://localhost:8108 by default.

Create a Collection

POST /api/v1/collections
Content-Type: application/json

{
  "name": "products",
  "fields": [
    {"name": "title", "type": "string"},
    {"name": "description", "type": "string"},
    {"name": "price", "type": "float", "sort": true},
    {"name": "category", "type": "string", "facet": true}
  ]
}

Search

POST /api/v1/collections/products/search
Content-Type: application/json

{
  "q": "wireless headphones",
  "query_by": ["title", "description"],
  "filter": "price:>=100 AND category:=electronics",
  "facets": ["category"],
  "sort_by": "price:asc",
  "limit": 20
}

Read the Full Documentation