A study project exploring hybrid search by combining BM25 full-text search with vector similarity search in PostgreSQL.
This project demonstrates how to combine two complementary search approaches:
- Lexical search (BM25) - Keyword matching for brands, models, technical terms
- Semantic search (Vector) - Meaning-based similarity for natural language queries
- Weighted combination - Blending both methods (30% BM25 + 70% Vector)
- PostgreSQL 17.5 - Latest stable PostgreSQL
- ParadeDB pg_search 0.20.2 - BM25 full-text search with custom operators
- pgvector 0.8.0 - Vector similarity search with HNSW indexing
- Rust - Type-safe, data-oriented API layer
- Leptos 0.7+ - Reactive web framework (in progress)
- CloudNativePG - Kubernetes operator for high availability
Comprehensive documentation is available in the docs/ directory:
- Architecture Overview - System design, technologies, and architectural decisions
- Deployment Guide - Docker Compose and Kubernetes deployment
- Hybrid Search Deep Dive - Implementation details, algorithm, and examples
- Web Application Development - Building the Leptos-based UI
- References & Resources - Papers, documentation, and learning resources
- Testing Guide - Testing and coverage notes
Apache License 2.0 - See LICENSE file for details.
This is a study project demonstrating hybrid search techniques. The code is provided as-is for learning and research purposes.
Built with open-source technologies:
- PostgreSQL Global Development Group - Core database
- ParadeDB Team - BM25 search extension
- pgvector Contributors - Vector similarity search
- Leptos Team - Rust web framework
- CloudNativePG Team - Kubernetes operator
- Rust Community - Language and ecosystem
Study Focus: Hybrid Search in PostgreSQL & Rust Last Updated: 2025-12-17
© 2025 sojoner