Performance: Similarity search vs MMR retrieval
This concept affects how quickly and efficiently relevant documents are retrieved and displayed to users, impacting interaction responsiveness and perceived speed.
results = vectorstore.max_marginal_relevance_search(query, k=10, fetch_k=20)
results = vectorstore.similarity_search(query, k=10)| Pattern | Computation Cost | Response Time | Result Diversity | Verdict |
|---|---|---|---|---|
| Similarity Search | Low (simple top-k vector similarity) | Faster (direct retrieval) | Low (may have redundant results) | [OK] |
| MMR Retrieval | Medium (similarity + re-ranking) | Slightly slower (extra CPU work) | High (diverse, less redundancy) | [OK] Good |
Similarity search and MMR retrieval in Langchain?k for number of results and lambda_mult for diversity weight.top_k or lambda which are incorrect parameter names.docs = ["apple pie recipe", "apple tart recipe", "banana bread recipe", "cherry pie recipe"] query = "apple dessert" sim_results = similarity_search(docs, query, k=2) mmr_results = mmr_retrieval(docs, query, k=2, lambda_mult=0.5)
mmr = MMRRetriever(documents, k=3, lambda_mult=0.6) results = mmr.get_relevant_documents(query)What is the likely cause of the error?
k and lambda_mult are correct.get_relevant_documents is a valid method for retrievers.lambda_mult. A value like 0.8 prioritizes relevance while introducing some diversity.Pass the test and this pattern moves unknown