OptionalfeedbackOpt-in closed-loop feedback re-rank (--feedback-weight): the note's feedback score + rank before/after. Present only when feedback re-rank was active; rank_before === rank_after means feedback did NOT move this hit.
Final 0-based rank of this hit in the returned matches.
Optionalgraph_Wikilink graph-boost (v2.3.0): in-degree among the fused top-K + the score added (α × in_degree). Present only when graph-boost ran AND this hit received a boost.
OptionalrecencyOpt-in recency re-rank (--recency-weight): the note's age + recency score + rank before/after. Present only when recency re-rank was active AND the note's mtime was stattable (a path deleted mid-flight contributes recency 0 and is omitted here); rank_before === rank_after means recency did NOT move this hit.
OptionalrerankerCross-encoder reranker (v2.9.0): the reranker score + rank before/after the rerank re-sort. Present only when a reranker ran and scored this hit.
RRF-fused rank + score right after Reciprocal Rank Fusion, BEFORE any re-rank stage. The three ranker arms that fed it live in the hit's per_signal.
v3.11.6 (S-5) — per-hit ranking EXPLANATION, attached to a SearchHybridHit ONLY when the search was called with
explain: true. It makes every re-rank stage's contribution — and the rank MOVEMENT it caused — visible, so you can see WHY a hit landed where it did and, crucially, whether the opt-in--recency-weight/--feedback-weightstages actually changed the order (both were previously evidence-poor: the response showed the final order but never which stage produced it). Every field is a score / rank / age only — no note content beyond what the hit already carries (privacy-safe). Ranks are 0-based positions in the fused candidate list at each stage boundary.