The AI Concepts Podcast

Module 6: RAG | Dense and Sparse Search - Why Vector Search Alone Is Not Enough

The AI Concepts Podcast

Show Notes

This episode addresses one of the most common gaps in RAG pipelines, relying solely on semantic search. We explore how dense retrieval works and where it excels, then introduce sparse retrieval with BM25 and why it catches what vector search misses entirely, particularly exact identifiers like part numbers, codes, and proper nouns. We break down how hybrid search combines both approaches using Reciprocal Rank Fusion, why it consistently outperforms either method alone, and how modern vector databases like Weaviate, Pinecone, and Qdrant support this natively. By the end you will understand why the best retrieval systems are not choosing between semantic and keyword search but running both.

More from The AI Concepts Podcast

Sep 12, 2026

In this episode, we bring everything together by following one LLM application from the user's first request to the final response. We see retrieval, context, tools, model calls, state, memory and orchestration working as one system, revealing the bigger lesson of the module: building with LLMs is not just about what the model can do, but deciding what the model should do and what the rest of the application should handle.

Sep 12, 2026

In this episode, we map the modern LLM application stack and explore where frameworks, SDKs, runtimes and protocols actually fit. We look at how tools like LangChain, LangGraph, LlamaIndex, provider SDKs, durable workflows and MCP solve different problems, and why understanding the architecture matters more than memorizing product names.

Sep 6, 2026

This episode separates two concepts that are often confused: state, which keeps track of what is happening now, and memory, which allows information from the past to become useful later. We explore how applications create continuity around a model, and why good memory is not about remembering everything, but remembering the right things at the right time.

Sep 6, 2026

This episode breaks down what orchestration actually means, from sequencing and routing to retries, parallel execution and human approvals, and explores the different ways those flows can be managed. Most importantly, we separate orchestration from the model itself and show why it is really about controlling how work moves through an application.

Aug 21, 2026

Who actually decides what happens next inside an LLM application? This episode explores the difference between decisions made by code and decisions made by the model, and why real applications often use both. We follow the loop that emerges when a model can request information or actions, receive the results and decide what to do next, revealing what developers mean when they talk about “owning the loop” and setting the stage for orchestration.

See all episodes →