Skip to main content
Nora’s retrieval defaults to hybrid search: two independent ranking passes (vector and keyword) fused into one final score. This works better than either alone.

Why hybrid

  • Vector search finds chunks that mean similar things, even if wording differs. Great for paraphrased questions, cross-language, and conceptual matches. Weak on rare exact terms — SKUs, error codes, proper nouns.
  • Keyword (BM25) search finds chunks with the same literal terms. Great for identifiers, jargon, exact-string lookups. Weak on synonyms and paraphrases.
Most real questions need both.

How fusion works

Vector and keyword each produce a ranked list. Nora combines them using Reciprocal Rank Fusion (RRF) — a chunk in position 3 of both lists scores higher than a chunk that’s #1 in one list and #100 in the other. RRF is robust to score scale differences and has no tunable magic constant. The fused list is what the Agent sees.

Adjusting the balance

Even with RRF, you can weight the passes. From your Retrieval preset:
  • Vector weight — 0.0 to 1.0. Default 0.5.
  • Keyword weight — 0.0 to 1.0. Default 0.5.
Push toward vector for conversational domains (support, legal Q&A). Push toward keyword for code, part numbers, product names. Setting one weight to 0 turns off that pass entirely (pure vector or pure keyword).

Query expansion

For hard queries — short, ambiguous, or single-keyword — Nora can rewrite the query into a small set of variants and search each. Results are re-fused. Off by default because it adds latency and cost. Turn on in your preset: Query expansion → on. Set expansion count (2-5). Uses a small model.

Multilingual

Vector search works across languages when your embedding model is multilingual. Keyword search matches only the surface language. If your data is multilingual, embed with a multilingual model and lean the weight toward vector.

Testing

Every Retrieval preset has a Test query panel. Type a query, see the ranked results, and toggle vector-only / keyword-only / hybrid to compare. Score breakdown is shown for every returned chunk.

When hybrid is overkill

For very small collections (< 1000 chunks) keyword-only is often enough and costs nothing extra. For very short, keyword-heavy queries (SKU lookups) keyword-only is faster with the same recall. Turn off vector in those presets.