Welcome to the IRDB (Information Retrieval Database) documentation. This project demonstrates hybrid search capabilities combining PostgreSQL full-text search with vector similarity search.
IRDB is a study project exploring Hybrid Search in PostgreSQL & Rust. It combines:
- BM25 full-text search (ParadeDB) for keyword matching
- Vector similarity search (pgvector) for semantic understanding
- Hybrid search that intelligently combines both approaches (30% BM25 + 70% Vector)
- Architecture - System design, technologies, and architectural decisions
- Deployment Guide - How to deploy using Docker Compose or Kubernetes
- Hybrid Search Deep Dive - Implementation details, SQL queries, and examples
- Web Application Development - Building the Leptos-based web UI
- References & Resources - Upstream documentation, papers, and related projects
- Testing Guide - Unit tests, integration tests, and code coverage
# Start with Docker Compose
make compose-up
# Or deploy to Kubernetes
make setup-all
# Run tests
make test-all- PostgreSQL 17.5 with ParadeDB pg_search (v0.20.2) and pgvector (v0.8.0)
- Hybrid search combining lexical and semantic understanding
- Production-ready Kubernetes deployment with CloudNativePG
- Leptos-based web application (in progress)
- Comprehensive test suite with real database integration tests
This project explores:
- How to implement hybrid search at the database level
- Weighted scoring algorithms for combining BM25 and vector results
- HNSW (Hierarchical Navigable Small World) index performance
- Test-driven development with Rust and PostgreSQL
- Pure functional design patterns for database queries
- ✅ Database foundation with ParadeDB and pgvector
- ✅ Hybrid search implementation with configurable weights
- ✅ Docker and Kubernetes deployment
- ✅ Rust API layer with pure functional queries
- ✅ Comprehensive test suite (17/17 passing)
- 🚧 Leptos web UI components (in progress)
Apache License 2.0 - See LICENSE file for details.