Deep Dive

Search & Agentic Search

How the three-stage search works and why it needs no vector DB.

01
Quick Search

First, tags and titles are matched. Tag matches weigh 3x, title matches 2x. Critical nodes get a 30% relevance boost.

Weighting:
Tag match: x3.0 | Title match: x2.0 | Substring: x1.0
Relevance boost: critical +30%, high +20%
02
Deep Search

Only activates when Quick Search finds too few results. Searches full text of all nodes with diminishing returns (max 5 per word) and phrase bonuses.

Quick found 2, limit is 5 → Deep Search activated

"postgresql" 3x → 1.5 | "performance" 7x → min(7,5) x 0.5 = 2.5
Phrase bonus: +2.0
03
Relation Enrichment

With --with-relations each result shows its Knowledge Graph connections. See not just WHAT is relevant but WHY and HOW it connects.

Result: [dec-001] PostgreSQL
  🔗 ← required by ← REST API
  ⚡ ← caused ← Race Condition
  ⚙️ ← implements ← Repository Pattern