Implementation:Langchain ai Langchain Chroma Max Marginal Relevance Search
Appearance
| Knowledge Sources | |
|---|---|
| Domains | Information_Retrieval, Vector_Search |
| Last Updated | 2026-02-11 00:00 GMT |
Overview
Concrete tool for performing MMR search against a Chroma vector store provided by the LangChain Chroma integration.
Description
The Chroma.max_marginal_relevance_search() method first fetches fetch_k candidate documents by similarity, then applies the MMR algorithm to select k results that balance relevance with diversity. The lambda_mult parameter (0.0 to 1.0) controls this balance.
Usage
Use instead of similarity_search() when you need diverse results, particularly for RAG contexts.
Code Reference
Source Location
- Repository: langchain
- File: libs/partners/chroma/langchain_chroma/vectorstores.py
- Lines: L1075-1122
Signature
def max_marginal_relevance_search(
self,
query: str,
k: int = DEFAULT_K,
fetch_k: int = 20,
lambda_mult: float = 0.5,
filter: dict[str, str] | None = None,
where_document: dict[str, str] | None = None,
**kwargs: Any,
) -> list[Document]:
Import
from langchain_chroma import Chroma
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| query | str | Yes | Search query |
| k | int | No (default: 4) | Final results count |
| fetch_k | int | No (default: 20) | Initial candidates to fetch |
| lambda_mult | float | No (default: 0.5) | Diversity/relevance balance (0=diversity, 1=relevance) |
| filter | dict or None | No | Metadata filter |
Outputs
| Name | Type | Description |
|---|---|---|
| return | list[Document] | Top-k documents selected via MMR |
Usage Examples
MMR Search
# Diverse results (more diversity)
results = vectorstore.max_marginal_relevance_search(
"machine learning applications",
k=5,
fetch_k=20,
lambda_mult=0.3, # Favor diversity
)
# Relevant results (more relevance)
results = vectorstore.max_marginal_relevance_search(
"machine learning applications",
k=5,
fetch_k=20,
lambda_mult=0.8, # Favor relevance
)
Related Pages
Implements Principle
Page Connections
Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment