При вводе запроса в поиск, вы получаете ответ из ранее созданной поисковой базы, эта база создаётся поисковыми системами с помощью собственных программ-роботов и называется поисковым индексом. Давайте подробно рассмотрим как устроены поисковые системы.
Работа поисковых машин разделена на два этапа:
- Этап 1 – Подготовка поискового индекса.
- Этап 2 – Поиск ответа на запрос пользователя.
Содержание
Подготовка поискового индекса
Прежде, чем найти лучший ответ на запрос пользователя, необходимо просканировать все имеющиеся сайты, найти в них страницы удовлетворяющие запросу, сравнить их и только после этого предложить варианты. Прежде чем сравнивать и предоставлять ответ, требуются огромные вычислительные мощности для того что бы найти страницы и скачать их для последующего анализа. Поисковые системы данную задачу решают с помощью собственных поисковых роботов.
Поисковые роботы
Поисковый робот (краулер, веб-паук) – это программный комплекс для сканирования интернета, скачивания и анализа веб-документов.
Из-за огромного числа страниц в интернете, обойти их все за раз задача не простая, даже для роботов. При это одни страницы удаляются, другие изменяются, третью добавляются, а четвёртые не меняются. Что бы не тратить время и ресурсы на обход страниц, которые не меняются или не работают, а перераспределять мощности, отдавая приоритет новым или часто меняющимся страницам, существует маршрут поискового робота.
Маршрут поискового робота
Маршрут поискового робота – это список с URL адресами, сгруппированный по доменам, который поисковый робот должен обойти за выделенный период времени. Список формирует программа-планировщик, каждый раз добавляя или убирая URL-адреса.
Краулинговый бюджет
Для каждого сайта, робот-планировщик формирует свой список адресов, который должен обойти за одно обращение к сайту (сессию). Этот список называется краулинговым бюджетом. Краулинговый бюджет, зависит от ряда факторов, кол-во страниц на сайте и их частота обновления, кол-во регулярно появляющихся новых страниц, кол-во и частота появления новых ссылок на сайт, качество страниц и корректность их работы.
На низко нагруженных ресурсах SEO-специалисты боряться над увеличением кол-ва адресов в маршруте робота и частотой обхода. А на сайтах с большим числом страниц и высокой нагрузкой на сервер, над оптимизацией маршрута, добавляя в перечень новые и изменённые страницы, исключая не нужные для роботов страницы или устанавливая лимиты на дневное сканирование.
Каждый раз при обходе сайта по маршруту, краулер получает информацию о наличии страницы или её отсутствии, если она доступна скачивает её целиком, определяет тип (html, pdf и т.д.) документа, язык и кодировку, далее отправляет в хранилище.
Поисковая база
В хранилище, скаченная страница разбивается на 2 версии (копия и фрагментированная) и затем отправляется в поисковую базу, для дальнейшего анализа.
Копия страницы
Копия страницы, хранится в том виде в котором была скачена, до следующего обхода. Такую копию можно увидеть на странице выдачи поисковых систем. Она может быть нужна, на случай если найденный сайт не доступен или уже изменился относительно последнего обхода.
Фрагментированная страница
Фрагментированная страница, это версия веб-документа разбитая на фрагменты текста (мета-данные, заголовок, абзацы текста, отдельные слова и т.д.). Каждое слово размечается, в каком фрагменте и на каком месте оно находится, далее эта информация отправляется в поисковый индекс (поисковую базу).
Когда краулер находит URL-адрес, он добавляет его в программу-планировщик, которая определяет когда данный URL просканировать. Кроме найденных ссылок самим поисковым роботом, в маршрут адреса попадают из систем аналитики (Яндекс.Метрика и Google Analytics), а так же из кабинетов вебмастера (Яндекс.Вебмастер и Google Search Console).
Виды поисковых роботов
Существуют разные виды роботов которые сканируют разные типы данных для разных целей. Например, у Яндекса выделяют 2 основных, но не единственных поисковых робота:
- Основной индексирующий робот.
- Быстро-робот (Orange).
Основной индексирующий робот регулярно обходит все сайты в списке и загружает полученные данные в базовый поиск. Обход и обработка данных требует время, поэтому загрузка происходит не моментально, а раз в несколько дней. На основании загруженных данных происходит обновление базового поиска, именуемое апдейтом. Такой процесс требует больших серверных мощностей, именно поэтому апдейты происходят, как правило ночью, когда нагрузка на поиск минимальна.
Робот Orange пополняет базовый поиск в режиме реального времени. Такой робот может обходить один сайт несколько раз за день, это акутально для ресурсов, где информация обновляется несколько раз за день.
Поиск ответа на запрос пользователя
Имея в своей базе информацию о скаченых страницах, поисковая машина может быстро найти документы удовлетворяющие поисковому запросу. А технология Матрикснет у Яндекса и поисковый алгоритм Гугла, позволяют поместить на первые строчки страницы наиболее полно и точно отвечающие на запрос пользователя.
Метапоиск
В Яндексе существует так называемый метапоиск, который определяет все необходимые данные о запросе, именно в него сначала попадает поисковое слово или фраза пользователя. Фраза анализируется и для часто задаваемых фраз выдаётся готовый ответ хранящийся некоторое время в памяти метапоиска. Если готового ответа нет, то запрос переходит на следующий уровень, в базовый поиск.
Базовый поиск
Произведя поиск по всему поисковому индексу и получив перечень документов содержащих поисковую фразу, документы отправляются в Матрикснет. Матрикснет определяет порядок всех документов на странице поисковой выдачи и этот порядок документов мы видим в качестве ответа на свой запрос.
Дополнительный материал для изучения
- Поиск с инженерной точки зрения – видео с конференции Яндекса
- Индексирование интернета – статья от Яндекса
- Архитектура ответа на вопрос – статья от Яндекса
- Поисковый робот – статья на Wikipedia
- Как работает Google Поиск – справка Google