← All questions
System DesignHard· Retrieval Strategy· Index Scaling· Hybrid Search

How do you decide between using dense embeddings, BM25, or SPLADE for a large corpus with mixed query types?

Do not arbitrate based on preference; scale the arithmetic. Dense embeddings at 768 fp32 are storage-heavy and often underperform on rare tokens like part numbers. BM25 is efficient but may lose recall on natural language queries. SPLADE provides a single index that retains exact-match capabilities via literal tokens with large weights. If latency budgets are exceeded, the reversal condition is to ship BM25 combined with a small dense index.

Code playground (Python)