I built a search engine in Python using NumPy, SciPy, and FAISS, covering index construction, query processing, ranking, and evaluation. The project included Variable Byte and Elias Gamma compression for index postings.
Retrieval experiments compared TF-IDF, BM25, WAND query acceleration, latent semantic indexing, and FAISS HNSW approximate nearest-neighbor search. Implementing these approaches in one system made it possible to examine both ranking behavior and query-processing costs.
Evaluation used 30 annotated search queries with Rank-Biased Precision, NDCG, and Average Precision, connecting implementation choices to measured retrieval quality.