Retrievers
A retriever is the component that takes a query and returns relevant documents. LangChain provides several retriever types beyond basic similarity search.
Vector Store Retriever (Basic)
retriever = vectorstore.as_retriever(search_kwargs={"k": 4})Returns top‑k most similar documents.Multi‑Query Retriever
Generates multiple variations of the query using an LLM, retrieves for each, and combines results. Improves recall.
from langchain.retrievers import MultiQueryRetriever
retriever = MultiQueryRetriever.from_llm(retriever=vectorstore.as_retriever(), llm=llm)Ensemble Retriever
Combines multiple retrievers (e.g., vector + BM25) using weighted reciprocal rank fusion.
from langchain.retrievers import EnsembleRetriever
retriever = EnsembleRetriever(retrievers=[bm25_retriever, vector_retriever], weights=[0.5, 0.5])Metadata Filtering
Filter by metadata before retrieval (e.g., only search documents from a specific source).
retriever = vectorstore.as_retriever(search_kwargs={"filter": {"source": "report.pdf"}})Two Minute Drill
- Basic retriever: returns top‑k similar chunks.
- Multi‑Query retriever improves recall by generating query variations.
- Ensemble retriever combines vector and keyword search.
- Metadata filtering narrows down search space.
Need more clarification?
Drop us an email at career@quipoinfotech.com
