# Semantic Search Engine

A hybrid semantic search engine, built during an internship, that combines dense embedding search with sparse keyword matching, cross-encoder reranking, and Redis caching, served through a FastAPI backend.

Semantic Search Engine retrieves context-aware results by meaning rather than exact keyword matches, combining dense embeddings from a BAAI BGE model with sparse SPLADE keyword matching for hybrid retrieval, then reranking the combined candidates with a cross-encoder model before returning results. Embeddings are stored and queried in Qdrant, and a Redis cache sits in front of the pipeline to speed up repeated queries.

The project is served through a FastAPI backend with interactive Swagger documentation, and is set up with a small number of commands: starting Qdrant and Redis containers, installing dependencies, building the index from source data, and starting the API. Reported evaluation on a set of 25 queries shows reranking reducing average query latency by roughly a third versus hybrid search alone, while cache hits cut latency by about four hundred times compared with a cache miss.

Website: https://github.com/Sumanth0019/Semantic-Search-Engine
