Skip to main content
All Labs
⚖️Lab · Search

Hybrid Search

Keyword search nails exact terms; semantic search understands meaning. Neither wins alone. Hybrid search runs both and fuses the results — drag the weight slider and watch the ranking shift in real time.

LevelIntermediate
Time12 min
BackendBedrock + RRF

⚖️ Why neither method alone is enough

Ask for “affordable sneakers for playing basketball” — keyword search misses the doc that says “basketball shoe” (no word overlap), while semantic search may fumble an exact code like ERR-4032. Hybrid runs both and merges them, so exact terms and meaning both count. Slide the weight to see each engine's strength.

Free: a fixed demo corpus, RRF slider, and 3 searches/day with a free account. Pro: your own documents, saved configurations, and rank analysis.
Fusion weight50% keyword · 50% semantic
◀ Keyword (BM25)Semantic (vectors) ▶

Free uses this fixed corpus. Sign in for 3 demo searches/day; Pro beta members can search and compare their own documents.

Score fusion

Four ways to combine two rankings

Arithmetic mean

Equal weight to both scores. Simple, but sensitive to score-scale mismatch between engines.

Weighted sum

Tunable, e.g. 0.6 semantic + 0.4 keyword. Needs normalized scores to be meaningful.

Harmonic mean

Penalizes large discrepancies — a doc must do reasonably well on both to rank high.

Reciprocal Rank Fusion

Uses ranks, not raw scores, so score scales never clash. This lab uses RRF: Σ weight / (60 + rank + 1).

Why RRF here: keyword (BM25) and cosine scores live on totally different scales, so adding them directly lets one engine dominate. RRF throws away the raw scores and fuses the ranks instead — robust and parameter-light. (Also the approach Amazon OpenSearch Serverless recommends, since it doesn't support script_score.)