Архитектура любой поисковой системы опирается на несколько ключевых элементов, каждый из которых выполняет свою уникальную и важную роль:
Spider (паук) - это специализированная программа, по сути, работающая как браузер, но со своей целью: она забирает веб-страницы с серверов.
Crawler (краулер, или «путешествующий» паук) - это механизм, который автоматически обходит все ссылки, найденные на странице, открывая для себя новые горизонты интернета.
Indexer (индексатор) - программа-аналитик, которая тщательно изучает веб-страницы, ранее загруженные пауками, извлекая из них смысл и структуру.
Database (база данных) - это огромное хранилище, где аккумулируются все скачанные и обработанные данные. Без него система просто не смогла бы помнить о том, что она уже видела.
Search engine results engine (система выдачи результатов) - тот самый «мозг», который извлекает релевантные результаты поиска из базы данных и показывает их пользователю.
Web server (веб-сервер) - интерфейс, обеспечивающий бесшовное взаимодействие между человеком и внутренними механизмами поисковой системы.
Хотя конкретная реализация этих процессов может варьироваться от одной платформы к другой (например, функции Spider, Crawler и Indexer иногда объединяются в единую программу, которая одновременно скачивает известные страницы, анализирует их и ищет по ссылкам новые ресурсы), фундаментальные принципы работы остаются неизменными для всех.
Spider. Паук - это программа, которая скачивает веб-страницы тем же способом, что и браузер пользователя. Отличие состоит в том, что браузер отображает информацию, содержащуюся на странице (текстовую, графическую и т.д.), паук же не имеет никаких визуальных компонент и работает напрямую с html-текстом страницы (вы можете сделать «просмотр html-кода» в вашем браузере, чтобы увидеть «сырой» html-текст).
Crawler. Выделяет все ссылки, присутствующие на странице. Его задача - определить, куда дальше должен идти паук, основываясь на ссылках или исходя из заранее заданного списка адресов. Краулер, следуя по найденным ссылкам, осуществляет поиск новых документов, еще неизвестных поисковой системе.
Indexer. Индексатор разбирает страницу на составные части и анализирует их. Выделяются и анализируются различные элементы страницы, такие как текст, заголовки, структурные и стилевые особенности, специальные служебные html-теги и т.д.
Database. База данных - это хранилище всех данных, которые поисковая система скачивает и анализирует. Иногда базу данных называют индексом поисковой системы.
Search Engine Results Engine. Система выдачи результатов занимается ранжированием страниц. Она решает, какие страницы удовлетворяют запросу пользователя, и в каком порядке они должны быть отсортированы. Это происходит согласно алгоритмам ранжирования поисковой системы. Эта информация является наиболее ценной и интересной для нас – именно с этим компонентом поисковой системы взаимодействует оптимизатор, пытаясь улучшить позиции сайта в выдаче, поэтому в дальнейшем мы подробно рассмотрим все факторы, влияющие на ранжирование результатов.
Web server. Как правило, на сервере присутствует html-страница с полем ввода, в котором пользователь может задать интересующий его поисковый термин. Веб-сервер также отвечает за выдачу результатов пользователю в виде html-страницы.