A search engine typically operates by crawling websites to retrieve electronic documents and other types of data (e.g., web pages word processing documents, PDF files, presentation documents, text files, multimedia files, etc), and by generating an index of these items based on the electronic documents or metadata therein.