pub fn query_graph_text_hybrid(
g: &ServeGraph,
question: &str,
mode: &str,
depth: usize,
token_budget: usize,
context_filters: Option<&[String]>,
dense: Option<(&StaticEmbedder, &HashMap<String, Vec<f32>>)>,
) -> StringExpand description
Hybrid query: BM25 lexical + optional dense cosine, fused with RRF.
dense = Some((embedder, node_embeddings)) when a model is loaded.
Without dense, falls back to BM25-only ranking (still better than pure IDF).