How Search Engines Work
A search engine is a program designed to help find information stored on a computer system such as the World Wide Web, inside a corporate or proprietary network or a personal computer. The search engine allows one to ask for content meeting specific criteria (typically those containing a given word or phrase) and retrieves a list of references that match those criteria.
Search engines use regularly updated indexes to operate quickly and efficiently. Without further qualification, search engine usually refers to a Web search engine, which searches for information on the public Web. Other kinds of search engine are enterprise search engines, which search on intranets, personal search engines, which search individual personal computers, and mobile search engines. However, while different selection and relevance criteria may apply in different environments, the user will probably perceive little difference between operations in these. Some search engines also mine data available in newsgroups, large databases, or open directories like DMOZ.org. Unlike Web directories, which are maintained by human editors, search engines operate algorithmically. Most web sites which call themselves search engines are actually front ends to search engines owned by other companies.
The very first tool used for searching on the Internet was called "Archie". (The name stands for "archive" without the "v", not the character from the 'Archie' comic book series). It was created in 1990 by Alan Emtage, a student at McGill University in Montreal. The program downloaded the directory listings of all the files located on public anonymous FTP (File Transfer Protocol) sites, creating a searchable database of filenames.
While Archie indexed computer files, "Gopher" indexed plain text documents. Gopher was created in 1991 by Mark McCahill at the University of Minnesota. (The program was named after the school's mascot). Because these were text files, most of the Gopher sites became Web sites after the creation of the World Wide Web.
Two other programs,"Veronica" and "Jughead," searched the files stored in Gopher index systems. Veronica (Very Easy Rodent-Oriented Net-wide Index to Computerized Archives) provided a keyword search of most Gopher menu titles in the entire Gopher listings. Jughead (Jonzy's Universal Gopher Hierarchy Excavation And Display) was a tool for obtaining menu information from various Gopher servers.
The first Web search engine was "Wandex", a now-defunct index collected by the World Wide Web Wanderer, a web crawler developed by Matthew Gray at MIT in 1993. Another very early search engine, Aliweb, also appeared in 1993, and still runs today. The first "full text" crawler-based search engine was WebCrawler, which came out in 1994. Unlike its predecessors, it let users search for any word in any web page, which became the standard for all major search engines since. It was also the first one to be widely known by the public. Also in 1994 Lycos (which started at Carnegie Mellon University) came out, and became a major commercial endeavor.
Soon after, many search engines appeared and vied for popularity. These included Excite, Infoseek, Inktomi, Northern Light, and AltaVista. In some ways, they competed with popular directories such as Yahoo!. Later, the directories integrated or added on search engine technology for greater functionality.
Search engines were also known as some of the brightest stars in the Internet investing frenzy that occurred in the late 1990s. Several companies entered the market spectacularly, recording record gains during their initial public offerings. Some have taken down their public search engine, and are marketing enterprise-only editions, such as Northern Light.
Before the advent of the Web, there were search engines for other protocols or uses, such as the Archie search engine for anonymous FTP sites and the Veronica search engine for the Gopher protocol. More recently search engines are also coming online which utilise XML or RSS. This allows the search engine to efficiently index data about websites without requiring a complicated crawler. The websites simply provide an xml feed which the search engine indexes. XML feeds are increasingly provided automatically by weblogs or blogs. Examples of this type of search engine are feedster, with niche examples such as LjFind Search providing search services for Livejournal blogs.
Challenges faced by Search Engines
The web is growing much faster than any present-technology search engine can possibly index (see distributed web crawling). In 2006, some users found major search-engines became slower to index new webpages.
Many web pages are updated frequently, which forces the search engine to revisit them periodically.
The queries one can make are currently limited to searching for key words, which may result in many false positives, especially using the default page-wide search. Better results might be achieved by using a proximity-search option with a search-bracket to limit matches within a paragraph or phrase, rather than matching random words scattered across large pages.
Dynamically generated sites may be slow or difficult to index, or may result in excessive results, perhaps generating 500 times more webpages than average. Example: for a dynamic webpage which changes content based on entries inserted from a database, a search-engine might be requested to index 50,000 static webpages for 50,000 different parameter values passed to that dynamic webpage.
Many dynamically generated websites are not indexable by search engines; this phenomenon is known as the invisible web.
Some search-engines do not rank results by relevance, but by the amount of money the matching websites pay.
In 2006, hundreds of generated websites used tricks to manipulate a search-engine to display them in the higher results for numerous keywords. This can lead to some search results being polluted with linkspam or bait-and-switch pages which contain little or no information about the matching phrases. The more relevant webpages are pushed further down in the results list, perhaps by 500 entries or more.
How Search Engines Work
A search engine operates, in the following order
- Web crawling
Web search engines work by storing information about a large number of web pages, which they retrieve from the WWW itself. These pages are retrieved by a web crawler (sometimes also known as a spider) — an automated web browser which follows every link it sees, exclusions can be made by the use of robots.txt. The contents of each page are then analyzed to determine how it should be indexed (for example, words are extracted from the titles, headings, or special fields called meta tags). Data about web pages is stored in an index database for use in later queries. Some search engines, such as Google, store all or part of the source page (referred to as a cache) as well as information about the web pages, whereas some store every word of every page it finds, such as AltaVista. This cached page always holds the actual search text since it is the one that was actually indexed, so it can be very useful when the content of the current page has been updated and the search terms are no longer in it. This problem might be considered to be a mild form of linkrot, and Google's handling of it increases usability by satisfying user expectations that the search terms will be on the returned web page. This satisfies the principle of least astonishment since the user normally expects the search terms to be on the returned pages. Increased search relevance makes these cached pages very useful, even beyond the fact that they may contain data that may no longer be available elsewhere.
When a user comes to the search engine and makes a query, typically by giving key words, the engine looks up the index and provides a listing of best-matching web pages according to its criteria, usually with a short summary containing the document's title and sometimes parts of the text. Most search engines support the use of the boolean terms AND, OR and NOT to further specify the search query. An advanced feature is proximity search, which allows you to define the distance between keywords.
The usefulness of a search engine depends on the relevance of the result set it gives back. While there may be millions of Web pages that include a particular word or phrase, some pages may be more relevant, popular, or authoritative than others. Most search engines employ methods to rank the results to provide the "best" results first. How a search engine decides which pages are the best matches, and what order the results should be shown in, varies widely from one engine to another. The methods also change over time as Internet usage changes and new techniques evolve.
Most web search engines are commercial ventures supported by advertising revenue and, as a result, some employ the controversial practice of allowing advertisers to pay money to have their listings ranked higher in search results.
The vast majority of search engines are run by private companies using proprietary algorithms and closed databases, the most popular currently being Google, MSN Search, and Yahoo! Search. However, Open source search engine technology does exist, such as ht://Dig, Nutch, Senas, Egothor, OpenFTS, DataparkSearch and many others.
Suggestions for Further Reading
- Common Gateway Interface - CGI
- CRM, Customer Relationship Management
- Data Warehouse and Data Mining Technologies
- Relational Databases
- DHTML Scripts - Resources For Dynamic Websites
- Domain Name Registration Services
- Ecommerce and Online Store Solutions
- Online Marketing Solutions and Promotions
- Essays on Information Technology
- Free Software, Tools and Applications
- Computer and Web Graphics
- HyperText Markup Language
- Html Tools for World Wide Web
- Java Programming language, Tutorials, Tools and Applets
- Computer Networks
- Computer Operating Systems
- OS X Mountain Lion and Parallels Desktop For Mac
- Perl Scripts - Resources for CGI and Perl Programming
- Programming Languages
- Project Management
- Search Engines and SEO
- Web design and Website development
- Best Web Hosting Services
- Web Resources and Web Tools
- Web Tools And Web Resources For The Web Masters
The references below support some of the statements above. Because some issues are not documented in journals due to company-proprietary secrets, those issues are explained by logical reasoning. For more information on proprietary ideas, reasoning, and how to think, see: trade secret, closed source and deduction.
^DYN - The indexing of numerous dynamic pages can be shown by logical thinking: if one parameter-value generates 1 indexed webpage, 10 generate 10, and 1,000 parameter-values generate 1,000 webpages, etc. Also, some dictionary-page websites are indexed using dynamic pages: for example, search for page-counts of URLs containing variations of "dictionary.*" and observe the page-totals reported by the search-engines, perhaps in excess of 50,000 pages. (Such searches will yield definitive results for years, long after reference articles are out-of-print or deleted.)
^GBMW - Reports of 30-day punishment, re: Car maker BMW had its German website bmw.de delisted from Google, such as: [Slashdot-BMW] (05-Feb-2006).
^INSIZ - Size of webpage indexed by MSN/Google/Yahoo: [Max Page-size] (28-Apr-2006).
^LSPAM - The number of spam-links that slip past search-engine restrictions is a company-proprietary secret. Hundreds of spam-links can be verified by searching 24 variations of spelling "Da Vinci"/"Davinci" such as "Devinchi" or "Davinche" and counting the matching links which contain no relevant details, such as: "devinchi com. ketogenic diet recipe kona coffee label" -- searches can be repeated with numerous other rare words. (Such searches will yield definitive results for years and will, of course, be the most current research on the subject.) [See also: linkspam explaining proliferation of spam-pages.]
Attribution: Some information for this article has been adapted from wikipedia under Creative Commons Attribution-ShareAlike License.
Translate the Page