Search engines allow users to search the vast collection of documents on the web. They consist of crawlers that fetch web pages, indexers that analyze page content and links, and interfaces that allow users to enter queries. Crawlers add pages to an index by following links, and indexers create inverted indexes to map words to pages. When a query is searched, results are retrieved from the index and ranked based on relevance. PageRank is a key algorithm that ranks pages higher that receive more links from other highly ranked pages. While it effectively searches the large, diverse and dynamic web, search poses challenges in understanding ambiguous queries over an evolving collection.