Returns documents selected using maximal marginal relevance to balance relevance and diversity.
max_marginal_relevance_search(
    query: str,
    k: int = 4,
    fetch_k: int = 20,
    lambda_mult: float = 0.5,
    filter: Optional[Dict[str, Any]] = None,
    **kwargs
) -> List[Document]

Parameters

ParameterTypeDescription
querystrQuery text to search for
kintNumber of documents to return (default: 4)
fetch_kintNumber of documents to fetch before reranking (default: 20)
lambda_multfloatDiversity control: 0 = max diversity, 1 = min diversity (default: 0.5)
filterOptional[Dict[str, Any]](Optional) Metadata filters to apply
**kwargsAnyAdditional keyword arguments (currently unused)

Returns

List[Document]: List of diverse, relevant Document objects

Example Usage

# Search with balanced relevance and diversity
results = store.max_marginal_relevance_search(
    "Python programming concepts",
    k=5,
    fetch_k=20,
    lambda_mult=0.5  # Balance relevance and diversity
)

# Maximum diversity (avoid similar documents)
diverse_results = store.max_marginal_relevance_search(
    "data structures",
    k=5,
    lambda_mult=0.0  # Maximum diversity
)

# Maximum relevance (similar to standard search)
relevant_results = store.max_marginal_relevance_search(
    "algorithms",
    k=5,
    lambda_mult=1.0  # Maximum relevance
)