Simple vector search fails when concepts are spread out or use completely different vocabulary. Production systems use Hybrid Search.
Always fetch more documents than you need (e.g., top 20), then use a dedicated Reranker model (like Cohere Rerank) to resort them. The reranker is much more accurate but too slow to run on millions of documents, so it's used as a second pass.