What is the primary purpose of the `retriever` class in a hybrid search pipeline?	To wrap and coordinate multiple search implementations (like vector and BM25) into a single search pipeline.
What critical requirement must all individual search implementations (e.g., Vector Index, BM25) meet to be easily wrapped by a retriever?	They must have the same public API, specifically methods like `add document` and `search`.
What technique is used to combine and rank results from different search methodologies?	Reciprocal Rank Fusion.
In Reciprocal Rank Fusion, what is the general principle applied to the ranks from different indexes?	A score is calculated for each text chunk based on the inverse of (1 + its rank) from each index.
If a text chunk has a rank of $R$ in a search result, what is the term used in the Reciprocal Rank Fusion formula?	$1 / (1 + R)$.
After applying the Reciprocal Rank Fusion formula, what is the final step in the result merging process?	Sorting the combined results based on the calculated score from greatest to least.
What is the benefit of designing search implementations with a standardized API?	It allows for easy extensibility, enabling new search methods to be added to the retriever without changing the core logic.
What are the two main functions implemented within the `retriever` class?	`add document` (to pass documents to all contained indexes) and `search` (to query all contained indexes).
