What is the primary purpose of creating a `retriever` class in a hybrid search pipeline?	To wrap multiple search implementations (like Vector Index and BM25) and merge their results into a single pipeline.
What design requirement must individual search implementations (e.g., Vector Index, BM25) meet to be easily wrapped by the `retriever` class?	They must have a consistent public API, including methods like `add document` and `search`.
What technique is used to combine and merge results from different search methodologies?	Reciprocal Rank Fusion (RRF).
What is the core formula used in Reciprocal Rank Fusion (RRF) to calculate a score for a given rank?	1 / (1 + rank).
When the `retriever` class receives a user query, what is its initial action?	It forwards the query to each of the different search indexes contained within it.
What is the main benefit of designing each search index as a separate class with a consistent API?	It allows for the easy addition of new, completely different search methodologies to the retriever.
In the context of RRF, what does "rank" refer to?	The search output position (e.g., rank one, rank two, rank three).
