Hybrid Search
Search that thinks. BM25 precision meets semantic understanding.
Serpaix's search engine fuses three retrieval strategies with adaptive weights that change based on what you're actually asking. No more choosing between keyword precision and semantic meaning — you get both, intelligently combined.
The Problem
Keyword search misses semantic meaning. Pure AI semantic search is slow and misses exact matches. Neither alone is adequate for knowledge retrieval across hundreds of notes spanning years.
The Solution
BM25 (PostgreSQL tsvector/tsquery) + vector semantic (pgvector cosine, paraphrase-multilingual-MiniLM-L12-v2, 384-dim) + knowledge graph traversal, fused with Reciprocal Rank Fusion. Adaptive weights: question queries → 80% semantic; short exact queries → 80% BM25; temporal queries → 100% BM25; code queries → balanced. DSL operators: intitle:, tag:, notebook:, source:, before:, after:, regex:, NOT, OR.
Key benefits
Finds notes by meaning, not just keywords — 'papers about attention mechanisms' works
Natural language temporal queries: 'notes from before my startup pivot'
Power-user DSL: search by tag, date range, notebook, source, and regex
Saved searches with scheduled re-execution and notification alerts
Adaptive weights: the query type determines the search strategy automatically
Click-through learning: search results improve over time from your usage patterns
Technical Depth
RRF fusion formula: score = Σ 1/(k + rank_i) where k=60. Adaptive BM25 weight range: 0.2–0.8 based on query-type classifier. Embedding model: paraphrase-multilingual-MiniLM-L12-v2 at 384 dimensions, running locally via ONNX runtime for zero-latency embedding.
