O stack FAISS + BM25 + Azure embeddings é a arquitetura correta. O problema é que o intent router detecta o tipo de consulta mas não tem caminho de resposta dedicado — então rsID, gene e categoria retornam 0% de precisão mesmo existindo no índice.
hybrid_search aplica exact_boost (+0.2 rsID, +0.1 gene) depois da fusão RRF — boosteando documentos errados que o BM25 já recuperou mal. O token rs4988235 não é recuperado pelo BM25 porque o texto do documento é narrativo, não estruturado para lookup exato.