LangChain/Data Pipeline
Intermediate9 min

Retrievers

Retriever vs VectorStore, as_retriever(), custom retrievers, contextual compression, multi-query retriever, ensemble retriever.

Quick Reference

  • Retriever is a Runnable — it plugs into LCEL chains with the | operator
  • vector_store.as_retriever() wraps any VectorStore in the Retriever interface
  • MultiQueryRetriever generates multiple query variations to improve recall
  • ContextualCompressionRetriever filters and compresses retrieved documents to reduce noise
  • EnsembleRetriever combines results from multiple retrievers using reciprocal rank fusion

Retriever vs VectorStore

Retriever = Runnable

A Retriever is a Runnable that takes a string query and returns documents. It's an abstraction over VectorStore — you can use it in LCEL chains with |. VectorStore holds data; Retriever searches it.

From VectorStore to Retriever to LCEL chain