COMP 250: Search Engine

Search engine project that simulates the core functionalities of a real-world search engine, including crawling a simulated web environment, indexing the content found on each page, assigning page ranks, and returning ranked search results.

Web Graph Visualizer Demo:

Visualizer created by Étienne Allard-Shiau.

Tech used: Java.

How It's Made: This search engine was developed with a strong focus on algorithms and data structures in Java. It uses a depth-first search to explore and index web pages, followed by an iterative process to calculate and assign page ranks. For search queries, an optimized O(n log(n)) sorting algorithm is used, ensuring fast retrieval of relevant pages based on their rank.

Lessons Learned: This search engine project taught me a lot about algorithm development. Implementing the optimized sorting algorithm was particularly challenging, as quicksort and mergesort responded differently to optimizations. Fine-tuning the page rank calculations, especially when working with convergence, was also a challenge that required a lot of trial and error to get right.