Return docs selected using the maximal marginal relevance.
Maximal marginal relevance optimizes for similarity to query AND diversity among selected documents.
max_marginal_relevance_search(
self,
query: Optional[str] = None,
query_embedding: Optional[List[float]] = None,
k: int = 4,
fetch_k: int = 20,
lambda_mult: float = 0.5,
fields: Optional[List[str]] = None,
*,
custom_query: Optional[Callable[[Dict[str, Any], Optional[str]], Dict[str, Any]]] = None,
doc_builder: Optional[Callable[[Dict], Document]] = None,
**kwargs: Any = {}
) -> List[Document]| Name | Type | Description |
|---|---|---|
query | Optional[str] | Default: NoneText to look up documents similar to. |
query_embedding | Optional[List[float]] | Default: NoneInput embedding vector. If given, input query string is ignored. |
k | int | Default: 4Number of Documents to return. Defaults to 4. |
fetch_k | int | Default: 20Number of Documents to fetch to pass to MMR algorithm. |
lambda_mult | float | Default: 0.5Number between 0 and 1 that determines the degree of diversity among the results with 0 corresponding to maximum diversity and 1 to minimum diversity. Defaults to 0.5. |
fields | Optional[List[str]] | Default: NoneOther fields to get from elasticsearch source. These fields will be added to the document metadata. |