Zoek op “hybrid search RAG” en de eerste pagina staat vol leveranciers die embeddings een nieuwe naam hebben gegeven. De operatorversie is kleiner.
Hybride zoeken draait twee indexen over hetzelfde corpus. Een lexicale index, BM25 of een geleerd sparse model, scoort exacte termen. Een vectorindex scoort betekenis. Elk levert een eigen ranglijst. Die twee lijsten fuseer je, en pas daarna mag het model schrijven vanuit de treffers. In De RAG-engineer heet hetzelfde hybride retrieval.
Lexicaal zoeken is nog altijd hoe je een foutcode, een SKU, een eigennaam of een artikelnummer terugvindt. Zulke tokens zijn met opzet zeldzaam, en een embeddingmodel smeert ze uit. Vectorzoeken is nog altijd hoe je de alinea vindt die jouw woorden nooit gebruikte. Eerlijke vragen komen in beide vormen. Eén index kiest een kant en verliest de andere.
Geen “we hebben een vector store toegevoegd”, geen magische fusie
Een vector store zonder lexicaal pad is dense retrieval met een budget. Nuttig, en niet hybride.
Op trefwoorden zoeken en dezelfde treffers daarna met embeddings herordenen is een rerank, geen tweede index. Ook nuttig. Ook iets anders.
Fusie is leidingwerk. Reciprocal rank fusion negeert de ruwe scores en telt per document de omgekeerde rangen uit beide lijsten bij elkaar op. Scorenormalisatie zet de scores eerst op één schaal. De RAG-engineer houdt RRF aan als de veiligere standaard. Geen van beide bewijst dat de passage op het scherm de passage is die je in een geschil zou accepteren.
Waar het in GRAIN zit
GRAIN is Gather corpora, Rank and rerank, Assemble context, Inspect failures, Navigate freshness. Hybride retrieval is de eerste helft van Rank: twee signalen erin, één gefuseerde kandidatenlijst eruit, de reranker erna.
Het vervangt Assemble niet, want dat bepaalt wat er echt in het venster past. Het vervangt Inspect niet, want dat vraagt of de juiste chunk is opgehaald en gebruikt. Het vervangt Navigate niet, want dat vraagt of de passage nog actueel is. Sla je Inspect over omdat de gefuseerde score zelfverzekerd oogde, dan heb je een vloeiende misser gebouwd met meer wiskunde.
Een test voor deze week
Haal twintig echte zoekvragen uit je logs. Markeer de vragen waarvan je verwacht dat exacte termen winnen: identifiers, namen, codes. Draai ze door je huidige retriever en tel hoeveel daarvan in de top tien landen. Dat aantal is je argument voor hybride, nog voordat iemand over fusieparameters begint. Landen de exacte-termvragen al, dan is hybride niet je eerste probleem. Missen ze, dan haalt geen reranker een chunk terug die nooit in de kandidatenlijst heeft gestaan.
Twee pagina’s
Wat is RAG? bezit de methode. Wat is GRAIN? bezit de loop. Deze pagina is de Rank-splitsing.
De RAG-engineer is live. Je hebt de hardcover niet nodig om niet langer een vector-only demo als “hybride” uit te leveren.
Citeer deze pagina:Wat is hybride zoeken? Twee indexen, één inspecteerbare treffer.Len P. van der Hof. https://lenvanderhof.com/nl/blog/wat-is-hybride-zoeken/ ·