Владислав Дорофеев - Яндекс Воложа. История создания компании мечты
Обратите внимание: компания CompTek названа фирмой — вероятно, ее руководителям тогда казалось, что так солиднее.
Проект представляли трое — Аркадий Волож (неизменно в центре, как обычно, в мешковатом пиджаке), Илья Сегалович (в галстуке, улыбающийся своей искрометной харизматической улыбкой), Елена Колмановская (задумчивая, хотя и довольная).
«Это было маленькое приложение, там было всего 4 ГБ всех текстов, которые мы смогли наиндексировать (2–5 млн документов тогдашнего Рунета. — В.Д.)… Но в сентябре 1997 г. вдруг выяснилось, что это не просто демонстрашка, а целый сервис, народ пошел туда, стали много искать, заваливать нас запросами», — фиксирует Волож прошлое.
Но еще не пришло время отделения от матки, компании CompTek, которая всего за несколько лет под руководством Аркадия Воложа с насмешливым взглядом, эдакого авторитарного лидера с манерами демократа, стала крупнейшим дистрибьютором Cisco Systems в России и СНГ с объемом поставок сетевого и телекоммуникационного оборудования в десятки миллионов долларов в год. Потому что в России компьютерная техника была наиболее ходовым (или даже практически единственным на тот момент) серьезным коммерческим продуктом на рынке информационных технологий.
При этом Волож понимал, что единственным конкурентным преимуществом и коммерческим результатом проекта Яndex могут стать только востребованные прорывные технологии. На тот момент в поиске.
Теперь бы разобраться, что же такое поиск в Интернете. Разумеется, всего лишь на пользовательском уровне. Потому что людей, понимающих суть этого процесса, на планете немного. И я сам на это не претендую.
Я, например, даже не догадывался до начала работы над книгой о Воложе и «Яндексе» (можно в другой последовательности), что между событием, произошедшим в Сети, и его отображением в поисковой базе всегда есть временной промежуток, всегда есть небольшая дистанция, в которую можно упрятать вечность или ее отсутствие. Потому что «Яндекс» ищет ответы на вопросы пользователей не в Сети, а в ее слепке, в муляже, созданном запущенными в Сеть роботами-пауками. И в этом смысле «Яндекс» (как и все поисковики) является творцом гигантской, почти необозримой виртуальной вселенной.
Конечно, технология за годы существования поисковых систем сильно изменилась, но все же основы были заложены тогда, на заре Интернета. Это было счастливое время, когда зарождалось многое привычное сегодня.
Разумеется, лучше всех о своих поисковых технологиях рассказывает сам «Яндекс» (http://company.yandex.ru/technologies/searchindex/index.xml).
Поисковая машина «Яндекса» отвечает на вопросы пользователей, находя нужные документы в Интернете. А размеры современного Интернета исчисляются в экзабайтах, то есть в миллиардах миллиардов байтов. Конечно же, «Яндекс» не обходит весь Интернет каждый раз, когда ему задают вопрос. Поисковая система, так сказать, делает домашнее задание.
«Яндекс» ищет по поисковому индексу — базе данных, где для всех слов, которые есть на известных поиску сайтах, указано их местонахождение — адрес страницы и место на ней. Индекс можно сравнить с предметным указателем в книге или адресным справочником. В отличие от обычного предметного указателя, индекс содержит не только термины, а вообще все слова. А в отличие от адресного справочника, у каждого слова-адресата есть не одно, а очень много «мест прописки».
Поиск в Интернете состоит из двух частей. Первая — поисковик обходит Интернет, создавая его слепок на своих серверах. Вторая — пользователь задает запрос и получает ответ с серверов поисковика.
Подготовка данных, по которым ищет поисковая машина, называется индексированием. Специальная компьютерная система — поисковый робот — регулярно обходит Интернет, выкачивает документы и обрабатывает их. Создается своего рода слепок Интернета, который хранится на серверах поисковика и обновляется при каждом новом обходе.
У «Яндекса» два поисковых робота — основной и быстрый (он называется Orange). Основной робот индексирует Интернет в целом, а Orange отвечает за то, чтобы в поиске можно было найти самые свежие документы, которые появились минуты или даже секунды назад. У каждого робота есть список адресов документов, которые нужно проиндексировать.
Когда при обходе робот видит на уже известных сайтах новые ссылки, он добавляет их в свой список, увеличивая количество индексируемых страниц. Впрочем, владелец сайта сам может помочь основному роботу «Яндекса» найти свой ресурс и подсказать, например, как часто обновляются его страницы — через сервис «Яндекс. Вебмастер».
Сначала программа-планировщик выстраивает маршрут — очередность обхода документов. При этом планировщик учитывает важные для поисковой системы характеристики сайтов, такие как, например, цитируемость или частота обновления документов. После создания маршрута планировщик отдает его другой части поискового робота — пауку. Паук регулярно обходит документы по заданному маршруту. Если сайт на месте, то есть работает и доступен, паук выкачивает запланированные в маршруте документы. Он определяет тип скачанного документа (html, pdf, swf и т. п.), кодировку и язык, а затем отправляет данные в хранилище.
Там программа разбирает документ по кирпичику: очищает от html-разметки, оставляя чистый текст, выделяет данные о местоположении каждого слова и добавляет их в индекс. Сам документ в исходном виде также остается в хранилище до следующего обхода. Благодаря этому пользователи могут найти в «Яндексе» и посмотреть документы, даже если сайт временно недоступен. Если сайт закрылся или документ был удален или обновлен, «Яндекс» удалит копию со своих серверов или заменит ее на новую.
Поисковый индекс, данные о типе документов, кодировке, языке и сохраненные копии документов вместе составляют поисковую базу. Она обновляется постоянно, но, чтобы это обновление стало доступно пользователям, ее нужно перенести на базовый поиск. Базовый поиск — сервера, которые отвечают пользователям на запросы. Туда переносится не вся поисковая база, а только ее полезная часть — без спама, дубликатов сайтов (зеркал) и других ненужных документов.
Обновление поисковой базы из хранилища основного робота попадает в поиск «пакетами» — раз в несколько дней. Этот процесс создает дополнительную нагрузку на сервера, поэтому производится ночью, когда к «Яндексу» обращается на порядок меньше пользователей. Сначала новые части базы помещаются рядом с такими же частями из прошлого обхода. Затем они проверяются по целому ряду факторов, чтобы обновление не ухудшило качество поиска. Если проверка прошла успешно, новая часть базы заменяет собой старую.
(adsbygoogle = window.adsbygoogle || []).push({});