Understanding dense-sparse hybrid search

Hi,

I have a few questions on the implementation of dense / sparse hybrid search

  • The docs mention that for serverless indices hybrid search works by first grabbing the top k records and then ranking those based on the sparse vectors. If that is the case, then is it correct that weighing the dense and sparse vectors as is explained here, has no impact for serverless indices? If the top k records are fetched purely based on the dense vectors, then weighing those shouldn’t change anything about the results right?

  • The docs do not really explain how hybrid search works for pod based indices. I don’t want to use the serverless hybrid search implementation (where we grab top k purely based on the dense vector). Instead, I would like to grab the top k documents based on the weighted ranking of both the dense and sparse vectors. Is it correct that for pod based indices this is the actual implementation?

Thanks!

The first dense retrieval step is more like a pre-filtering step. Imagine instead of searching the entire database, the first step is to choose which region of the database to perform the retrieval on. After this filtering, both the sparse and dense components will both have meaningful impact on which candidates then become the topK.

Hey Nathan thanks for your reply! Ok, but I would still like to return the top_k based on the combination of dense and sparse, not just dense. Also, there’s a difference between how the hybrid search algorithm is implemented for the pod vs serverless based indices. I would like to understand how it works exactly for the pod based indices:)