- Главная
- Поисковые системы
- Как устроены поисковые системы
Как устроены поисковые системы
Современные поисковые системы обрабатывают десятки тысяч обращений в секунду, формируя результаты из миллиардов вариантов. Давайте рассмотрим, как устроены механизмы поиска.
Поисковые системы на физическом уровне
Современная поисковая машина – это сложнейшая структура, состоящая из сотен тысяч, а в случае с Google – миллионов физических серверов. Вся информация, которая на них хранится, надежно защищена и распределена по дата-центрам по всему миру.
Еще в 1997 году обработкой запросов для пользователей Яндекса и выдачей результатов поиска занимался всего один сервер, который был слабее любого современного домашнего компьютера. Сервер располагался в кабинете одного из основателей компании. Уже к 2000 году у Яндекса было около 50 серверов. Каждый месяц число серверов увеличивалось, что со временем привело к появлению собственного дата-центра (сейчас у Яндекса их уже четыре). Современный дата-центр – это сотни серверов, объединенных в единую сеть, которые позволяют справляться с большим объемом запросов и высокой посещаемостью сервиса. Для примера, посещаемость только поиска Яндекса за сентябрь 2012 года составила 27,6 млн человек.
Поисковые системы на логическом уровне
Когда пользователь хочет что-то найти, он вводит запрос. Его сначала обрабатывает «балансировщик нагрузки» – специализированное устройство, которое автоматически перенаправляет запрос пользователя в наименее загруженный на данный момент кластер. Это позволяет максимально эффективно использовать имеющиеся вычислительные мощности.
Затем поисковый запрос попадает в метапоиск. Эта система получает все необходимые данные и узнает, к какому типу данных запрос относится. На этом же этапе запрос проверяется на орфографию. Также система определяет, из какого региона поступил запрос и стоит ли по нему показывать региональные сайты.
Далее метапоиск проверяет, не было ли похожего запроса к системе в последнее время. Это связано с тем, что некоторые запросы становятся очень популярными в определенные моменты (значимое событие, катастрофа или даже рекламная кампания нового продукта), а другие популярны постоянно (например, связанные с социальными сетями). Чтобы снизить нагрузку, поисковая система некоторое время хранит ответы на запросы пользователей в кэше и в случае повторных обращений показывает уже готовые результаты, вместо того чтобы формировать ответы заново.
Если при проверке не получилось найти уже готовый ответ в кэше, поисковая система начинает формирование нового ответа и запрос пользователя передается дальше, на серверы «базового поиска». Именно в базовом поиске находится индекс поисковой системы, разбитый на отдельные части и распределенный по серверам, поскольку поиск по частям всегда быстрее.
Стоит обратить внимание, что каждый сервер имеет несколько копий. Это позволяет не только защитить информацию от потери, но и распределить нагрузку. Если информация с конкретного сервера окажется слишком востребованной и один из серверов будет перегружен, проблема решится подключением копий этого сервера.
По результатам поиска каждый сервер базового поиска возвращает метапоиску результаты, связанные с запросом пользователя. Далее к работе подключается алгоритм ранжирования «Матрикснет», который и определяет, на каком месте в поисковой выдаче будет каждая конкретная ссылка.
Вернуться назад: Обзор современных поисковых системЧитать далее: Процессы поисковых систем