Search engines are designed to help users find information stored digitally. They aim to minimize the time and amount of information needed to find what users are looking for. Major methods of information retrieval for search engines include Boolean, vector space model, probabilistic, and meta search. Designing the perfect search engine requires dealing with challenges like the web's huge and constantly changing document set that is loosely organized through hyperlinks. Effective search requires components like crawlers to discover pages, repositories to store them, indexes for efficient searching, and ranking algorithms to order results.