Поисковые системы — как они устроены(часть первая)

Итак, друзья, сегодня я продолжаю серию статей о поисковых системах. Эта — четвертая, в которой я изложу взгляд на поисковые системы изнутри, на технологию работы поисковых машин. Для чего? Как говорил один из моих комментаторов по поводу изучения их работы, — «врага надо знать в лицо» :). Что же, давайте изучим  этого «врага» более детально и  тщательно.

Для тех, кто не прочел предыдущие три статьи, вот ссылки: Поисковые системы — что это?, Поисковые системы: рекламные возможности и способы продвижения сайтов, Поисковые системы — краткий обзор.

А теперь читаем статью

«Поисковые системы — как они устроены».

Современные поисковые машины обрабатывают десятки тысяч обращений в
секунду. Как это это происходит?

Поисковые системы на физическом уровне

Современная поисковая машина — это сложнейшая структура, состоящая из сотен тысяч, а в Google — миллионов физических серверов. Вся информация, которая на них хранится, распределена и надежно защищена по дата-центрам всего мира.

Серверное помещение Яндекса

При своем зарождении, в «далеком»  1997 году обработкой запросов для пользователей Яндекса и выдачей результатов поиска занимался всего один сервер, который  располагался в кабинете одного из основателей компании и который был слабее любого современного домашнего компьютера! Представляете, как все быстро менялось, если   уже к 2000 году у Яндекса было около 50 серверов. Каждый месяц число серверов увеличивалось и, со временем,  это привело к появлению собственного дата-центра (сейчас у Яндекса их уже четыре). Современный дата-центр — это сотни серверов, объединенных в единую сеть, которые позволяют справляться с большим объемом запросов и высокой посещаемостью сервиса. Вот характерный пример: посещаемость только поиска Яндекса за февраль 2012 года составила 28,3 миллиона человек.

 Логическая схема  работы поисковых систем

Когда пользователь хочет что-то найти в интернете , он вводит запрос. Этот запрос  обрабатывается  «балансировщиком нагрузки» — специализированным устройством, которое автоматически перенаправляет запрос пользователя в наименее загруженный на данный момент кластер. Это позволяет максимально эффективно использовать имеющиеся вычислительные мощности.

Затем поисковый запрос перенаправляется  в «метапоиск». Эта система получает все необходимые данные и узнает, к какому типу данных  этот запрос относится. На этом же этапе запрос проверяется на орфографию, здесь же  определяется, из какого региона поступил запрос и стоит ли по нему показывать региональные сайты.

Логическая схема обработки запроса Яндекса

 

Далее метапоиск проверяет, не было ли похожего запроса к системе в последнее время. Это связано с тем, что некоторые запросы становятся весьма популярными в определенные моменты происходящие в мире и Сети (значимое событие, катастрофа или даже рекламная кампания нового продукта),некоторые  популярны постоянно (например, связанные с событиями в  социальных сетях). Чтобы снизить нагрузку, поисковая система некоторое время хранит ответы на запросы пользователей в кэше и в случае повторных обращений, показывает уже готовые результаты, вместо того чтобы формировать ответы заново. Если при проверке не получилось найти уже готовый ответ в кэше, поисковая система начинает формирование нового ответа и запрос пользователя передается дальше, на серверы «базового поиска». Именно в базовом поиске находится индекс поисковой системы, разбитый на отдельные части и распределенный по серверам, поскольку поиск по частям всегда быстрее. Стоит обратить внимание, что каждый сервер имеет несколько копий. Это позволяет не только защитить информацию от потери, но и распределить нагрузку. Если информация с конкретного сервера окажется слишком востребованной и один из серверов будет перегружен, проблема решится подключением копий этого сервера. По результатам поиска каждый сервер базового поиска возвращает метапоиску результаты, связанные с запросом пользователя. Далее к работе подключается алгоритм ранжирования «Матрикснет», который и определяет, на каком месте в поисковой выдаче будет каждая конкретная ссылка.

А теперь перейдем к наиболее животрепещущему вопросу для каждого обладателя сайта и выясним. как же происходит

Процесс индексирования

Индексация — это такой  процесс, во время которого поисковые роботы «совершают поход» по  сайтам и собирают  с их страниц разнообразную информацию и заносят ее в специальные базы данных. Вот  завести с ними личное знакомство! 🙂 Потом эти данные каким-то образом  обрабатываются, и по ним  строится индекс — выжимка из документов(веб страниц). Именно по индексу поисковая система ищет и выдает ссылки на сайты, исходя из запросов пользователей.
Рассмотрим процесс индексирования на примере Яндекса. В поисковой системе есть 2 типа роботов: быстрый (быстро-робот) и основной.
Задача основного робота — индексация всего контента, а быстрого — занесение в базы данных самой свежей информации. Планировщик поискового робота составляет маршруты посещения и передает его «пауку», который ходит по выбранным страницам и выкачивает из них информацию. Если во время индексации в документах обнаруживаются новые ссылки, они добавляются в общий список.

Последовательность процессов индексирования Яндекса.

 

Документы в индекс попадают двумя способами:

1)Автоматически, когда поисковый робот сам переходит по внешним и внутренним ссылкам,

2)Либо владелец сайта может сам добавить URL через специальную форму(«аддурилка») или через установленную на сайте Яндекс.Метрику. Этот сервис передает url страниц на индексацию Яндексу. При желании можно не устанавливать код Метрики на сайт или отключить данную опцию  ее  в интерфейсе.

Честно говоря, я не могу сказать, способствует ли Метрика Яндекса более быстрому индексированию страниц сайтов и мнения вебмастеров по поводу ее работы диаметрально противоположны: от хвалебных од, до бескомпромиссной критики. Некоторые считают ее действие положительно сказывается на скорости индексаци, некоторые  — что она тормозит этот процесс. Комментаторы, делитесь личным опытом и наблюдениями!

А теперь мы плавно перешли к понятию

Скорость индексации и обновления страниц

В идеале, вновь  созданная  страница должна быть сразу же проиндексирована. Однако большие объемы информации затрудняют скорость индексации новых страниц и обновления старых. Роботы поисковых систем постоянно обновляют поисковую базу данных, но чтобы она была доступна пользователям, ее необходимо переносить на «базовый поиск». База данных переносится туда не полностью. Исключаются зеркала сайтов, страницы, содержащие поисковый спам и другие ненужные, по мнению поисковой машины, документы. Однако для некоторых типов информации такая скорость обновление неприемлема. Например процесс индексирования новостных сайтов. Размещенные новости должны быть доступны в поисковой системе практически сразу после их добавления. Для ускорения индексации часто обновляемых страниц и существует специальный «быстрый робот», который посещает новостные сайты несколько раз в день.

Не думайте, что поисковые роботы лентяи —  они  стремятся проиндексировать как можно больше информации, однако существует ряд факторов, которые накладывают ограничения на процесс индексации. Так, например, возможность попадания в индекс напрямую зависит от авторитетности ресурса, уровня вложенности страниц, наличия файла sitemap, отсутствия ошибок, мешающих нормальной индексации сайта. Основными инструментами управления индексацией сайтов являются robots.txt, метатеги, теги, атрибуты noindex и nofollow.
Robots.txt — это текстовый файл, в котором можно задавать параметры индексирования как для всех поисковых роботов сразу, так и по отдельности.
Тег и метатег noindex отвечают за индексацию текста или самой страницы, а nofollow — за индексацию ссылок. Помимо обычных текстов, размещенных на сайтах, все современные поисковые системы умеют индексировать и документы в закрытых форматах. Существуют некоторые ограничения на типы данных, размещенных в этих файлах. Так, в PDF индексируется только текстовое содержимое. Во flash-документе индексируется текст, который размещен только в
определенных блоках и т.д.

Идем далее…

Типы роботов поисковых систем

Среди всех существующих поисковых роботов  стоит выделить четыре   основных:
➜➜ индексирующий робот,
➜➜ робот по изображениям,
➜➜ робот по зеркалам сайта;
➜➜ робот, проверяющий работоспособность сайта или страницы.
Некоторые посторонние роботы могут маскироваться под роботов Яндекса путем указания соответствующего user-agent. Вы можете проверить подлинность
робота с помощью идентификации, основанной на обратных DNS-запросах.

Определить, какой робот к тебе
зашел, можно с помощью лог-
файла, который обычно доступен
либо в админке, либо на ftp. Все
существующие роботы представ-
ляются по одной схеме, но каж-
дый имеет свое название. На-
пример: «Mozilla/5.0 (compatible;
YandexBot/3.0; +http://yandex.
com/bots)» — основной индекси-
рующий робот Яндекса.

Индексирующий робот обнаруживает и индексирует страницы, чтобы создать базу для основного поиска. Робот по изображениям заносит в индекс графическую информацию, которая в дальнейшем отображается в выдаче соответствующего сервиса, например, Яндекс.Картинки или Картинки Google. Робот, определяющий зеркала, проверяет зеркала сайтов, прописанных в файле robots.txt. Если они идентичны, то в результатах выдачи поисковика будет только один сайт — главное зеркало.

Существуют так же  другие твиды индексирующих роботов: индексаторы видео; пиктограмм (иконок) сайтов; робот, проверяющий работоспособность сайтов в Яндекс.Каталоге; индексатор «быстрого» контента на площадках новостных сайтов и др.
Важно понимать, что процесс индексации является длительным, за ним следует процесс обновления индексных баз, который также требует временных затрат. Поэтому результат внесенных на сайте изменений  может оказаться видимым только через 1-2 недели.  Существует еще специальный робот, который  проверяет доступность сайта, добавленного через форму «Добавить URL» в Яндекс.Вебмастер.

Что бы не утомлять вас более очень длинной статьей, просто скажу, что

Продолжение следует…

До скорой встречи!

 Источник

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *