Яндекс Воложа. История создания компании мечты - Владислав Дорофеев 9 стр.


Последнее направление (как тогда казалось, не самое важное в маркетинге) и определило судьбу яндексоидов и русской поисковой технологии в исполнении Воложа и Ко.

В 1997 г. Волож решился на крупные инвестиции в создание поисковой машины. На $10 000 были закуплены три сервера с жесткими дисками по 1 ГБ. Вскоре на них оказался записанным практически весь известный тогда Рунет.

«Мы решили запустить свой поиск на собственной страничке в Интернете, и этот сервис вдруг оказался кому-то нужен… Так в сентябре 1997 г. появился http://yandex.ru, а в 1998 г. мы уже продали на нем первый контекстный баннер», — впоследствии прокомментирует Волож выход проекта в публичное пространство. Факт очевиден. От коммерческого старта и до первого заказа пройдет почти год. И это лишнее подтверждение того, что «Яндекс» — никакой не венчурный проект. В отношении «Яндекса» — это притянутый за уши термин, поскольку на начальном этапе работы над проектом ни цель, ни назначение, ни модель монетизации его создателям не были ясны, как, впрочем, не был известен и термин «венчурный».

Индексированная копия Рунета образца осени 1997 г. поместилась на одном SCSI-диске на сервере под столом одного из первых разработчиков «Яндекса» Дмитрия Тейблюма. Тогда паук-поисковик «Яндекса» индексировал Рунет в еженедельном режиме.

Кстати, полезно понимать, что даже самая полная база одной поисковой системы охватывает около 40–50 % открытой части веба, остальная часть мировой Сети скрыта или недоступна. Именно по этой причине «Яндекс» в конце страницы выдачи предлагает пользователю сделать запрос и к другим поисковым системам. Единственный, кстати, из поисковых систем.

«Мы сделали “Яндекс” с простым намерением продемонстрировать наши революционные технологии», — такими словами Волож отдает дань великому случаю в интернет-судьбе «Яндекса». Планов завоевать мир пока еще не было.

«Яндекс» пришел в Интернет на полгода позже «Рамблера». Однажды Волож выскажется на этот счет: «Тогда в головах у людей мы были вовсе не первыми. И даже после того, как мы догнали “Рамблер” по объективным показателям, нам понадобился еще почти год, чтобы поменялась картина в головах у пользователей и мы стали субъективно первыми».

На две недели отстал «Яндекс» и от Google, который 14 сентября 1997 г. (по другой версии, 15-го) зарегистрировал домен http://google.com.

Кстати, в 1997 г. Воложу и Сегаловичу исполнилось по 33 года — первому 11 февраля, второму 13 сентября. Одноклассникам захотелось год мистического духовного взросления отметить выдающимся событием. У них получилось.

23 сентября 1997 г. на выставке Softool впервые была представлена поисковая система Яndex как самостоятельный проект. От этой даты принято отсчитывать возраст поисковика, хотя проект получил юридическое оформление в качестве самостоятельной компании лишь в марте 2000 г. Презентация поисковой машины Яndex-Web состоялась в четверг, 25 сентября в 16:00, на выставке Softool на стенде Д17 (разумеется, на стенде компании CompTek).

Процитирую распространенный тогда на выставке пресс-релиз:

Запущена новая поисковая машина Яndex-Web

23 сентября, Москва — фирма CompTek сообщает об открытии новой поисковой машины http://yandex.ru. Поисковая машина использует механизм Яndex-Web, областью поиска являются Web-сервера доменов. su и. ru, а также иностранные русскоязычные сервера, в том числе — стран СНГ. Яndex-Web представляет собой естественное развитие программных продуктов серии Яndex (Яndex.Site, Яndex.CD, Яndex.Dict, Яndex.Lib). Как и все Яndex-системы, Яndex-Web является полнотекстовой поисковой системой с учетом морфологии русского и английского языков. В отличие от популярной морфологической надстройки к поисковой системе AltaVista (http://www.comptek.ru/alta.html), Яndex-Web является полностью оригинальной разработкой CompTek. В настоящий момент робот (сетевой паук) обходит 5000 серверов (около 4 ГБ текстов) каждую неделю, список серверов пополняется. При индексировании проверяется уникальность документов — это значит, что, если документ существует в нескольких кодировках и/или на нескольких зеркалах, в списке найденного он будет указан один раз (и, соответственно, один раз учтен в статистике). Алгоритмы морфологического разбора, основанные на грамматическом словаре, умеют нормализовать слова, то есть находить их начальную форму. Для неизвестных Яndex слов строится гипотетическая словарная статья, позволяющая обрабатывать (анализировать и синтезировать) такие слова аналогично известным. Язык запросов (как и в других продуктах Яndex), помимо стандартных логических операторов (И, ИЛИ), включает оператор исключения (И НЕ), а также позволяет осуществлять поиск внутри абзаца, внутри документа, в заголовках и других полях, а также с указанием расстояния между словами. В дополнение к обычной практике Яndex — нормализации слов при индексации и поиске — реализован также запрос по точной словоформе. Язык запросов более подробно описан на странице http://yandex.ru/ya_detail.html. Найденные документы отсортированы по релевантности, которая учитывает не только «контрастность» слова, то есть его относительную частоту для данного документа, но и расстояние между словами и положение слова в документе. Яndex-Web при индексировании запоминает позицию слова в документе, что дает возможность не только искать «с расстоянием», но и выделить (подсветить) слова, найденные в тексте. Если документы были изменены после индексирования, выдается соответствующее предупреждение.

Обратите внимание: компания CompTek названа фирмой — вероятно, ее руководителям тогда казалось, что так солиднее.

Проект представляли трое — Аркадий Волож (неизменно в центре, как обычно, в мешковатом пиджаке), Илья Сегалович (в галстуке, улыбающийся своей искрометной харизматической улыбкой), Елена Колмановская (задумчивая, хотя и довольная).

«Это было маленькое приложение, там было всего 4 ГБ всех текстов, которые мы смогли наиндексировать (2–5 млн документов тогдашнего Рунета. — В.Д.)… Но в сентябре 1997 г. вдруг выяснилось, что это не просто демонстрашка, а целый сервис, народ пошел туда, стали много искать, заваливать нас запросами», — фиксирует Волож прошлое.

Но еще не пришло время отделения от матки, компании CompTek, которая всего за несколько лет под руководством Аркадия Воложа с насмешливым взглядом, эдакого авторитарного лидера с манерами демократа, стала крупнейшим дистрибьютором Cisco Systems в России и СНГ с объемом поставок сетевого и телекоммуникационного оборудования в десятки миллионов долларов в год. Потому что в России компьютерная техника была наиболее ходовым (или даже практически единственным на тот момент) серьезным коммерческим продуктом на рынке информационных технологий.

При этом Волож понимал, что единственным конкурентным преимуществом и коммерческим результатом проекта Яndex могут стать только востребованные прорывные технологии. На тот момент в поиске.

Теперь бы разобраться, что же такое поиск в Интернете. Разумеется, всего лишь на пользовательском уровне. Потому что людей, понимающих суть этого процесса, на планете немного. И я сам на это не претендую.

Я, например, даже не догадывался до начала работы над книгой о Воложе и «Яндексе» (можно в другой последовательности), что между событием, произошедшим в Сети, и его отображением в поисковой базе всегда есть временной промежуток, всегда есть небольшая дистанция, в которую можно упрятать вечность или ее отсутствие. Потому что «Яндекс» ищет ответы на вопросы пользователей не в Сети, а в ее слепке, в муляже, созданном запущенными в Сеть роботами-пауками. И в этом смысле «Яндекс» (как и все поисковики) является творцом гигантской, почти необозримой виртуальной вселенной.

Конечно, технология за годы существования поисковых систем сильно изменилась, но все же основы были заложены тогда, на заре Интернета. Это было счастливое время, когда зарождалось многое привычное сегодня.

Разумеется, лучше всех о своих поисковых технологиях рассказывает сам «Яндекс» (http://company.yandex.ru/technologies/searchindex/index.xml).

Поисковая машина «Яндекса» отвечает на вопросы пользователей, находя нужные документы в Интернете. А размеры современного Интернета исчисляются в экзабайтах, то есть в миллиардах миллиардов байтов. Конечно же, «Яндекс» не обходит весь Интернет каждый раз, когда ему задают вопрос. Поисковая система, так сказать, делает домашнее задание.

«Яндекс» ищет по поисковому индексу — базе данных, где для всех слов, которые есть на известных поиску сайтах, указано их местонахождение — адрес страницы и место на ней. Индекс можно сравнить с предметным указателем в книге или адресным справочником. В отличие от обычного предметного указателя, индекс содержит не только термины, а вообще все слова. А в отличие от адресного справочника, у каждого слова-адресата есть не одно, а очень много «мест прописки».

Поиск в Интернете состоит из двух частей. Первая — поисковик обходит Интернет, создавая его слепок на своих серверах. Вторая — пользователь задает запрос и получает ответ с серверов поисковика.

Подготовка данных, по которым ищет поисковая машина, называется индексированием. Специальная компьютерная система — поисковый робот — регулярно обходит Интернет, выкачивает документы и обрабатывает их. Создается своего рода слепок Интернета, который хранится на серверах поисковика и обновляется при каждом новом обходе.

У «Яндекса» два поисковых робота — основной и быстрый (он называется Orange). Основной робот индексирует Интернет в целом, а Orange отвечает за то, чтобы в поиске можно было найти самые свежие документы, которые появились минуты или даже секунды назад. У каждого робота есть список адресов документов, которые нужно проиндексировать.

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

Сначала программа-планировщик выстраивает маршрут — очередность обхода документов. При этом планировщик учитывает важные для поисковой системы характеристики сайтов, такие как, например, цитируемость или частота обновления документов. После создания маршрута планировщик отдает его другой части поискового робота — пауку. Паук регулярно обходит документы по заданному маршруту. Если сайт на месте, то есть работает и доступен, паук выкачивает запланированные в маршруте документы. Он определяет тип скачанного документа (html, pdf, swf и т. п.), кодировку и язык, а затем отправляет данные в хранилище.

Там программа разбирает документ по кирпичику: очищает от html-разметки, оставляя чистый текст, выделяет данные о местоположении каждого слова и добавляет их в индекс. Сам документ в исходном виде также остается в хранилище до следующего обхода. Благодаря этому пользователи могут найти в «Яндексе» и посмотреть документы, даже если сайт временно недоступен. Если сайт закрылся или документ был удален или обновлен, «Яндекс» удалит копию со своих серверов или заменит ее на новую.

Поисковый индекс, данные о типе документов, кодировке, языке и сохраненные копии документов вместе составляют поисковую базу. Она обновляется постоянно, но, чтобы это обновление стало доступно пользователям, ее нужно перенести на базовый поиск. Базовый поиск — сервера, которые отвечают пользователям на запросы. Туда переносится не вся поисковая база, а только ее полезная часть — без спама, дубликатов сайтов (зеркал) и других ненужных документов.

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

Робот Orange предназначен для поиска в реальном времени. Его планировщик и паук настроены так, чтобы находить новые документы и выбирать из огромного их количества все, хоть сколько-нибудь интересные. Каждый такой документ Orange сразу обрабатывает и выкладывает на базовый поиск. Срочных документов не очень много по сравнению с общим объемом Интернета, поэтому обновление базы в реальном времени можно делать и при дневных нагрузках на сервера.

Можно сказать, что поиск в Интернете состоит из двух больших частей. Первая — когда «Яндекс» ищет различные документы в Интернете и составляет поисковый индекс. Вторая — когда система ищет ответ на конкретный запрос пользователя в уже подготовленной поисковой базе…

Безусловно, поиск с помощью индекса ускоряет процесс ответа пользователю, как, например, предметный указатель в книге помогает быстрее найти нужное слово. Но размеры самого «предметного указателя» в поиске — огромны. Чтобы обрабатывать такие объемы данных и делать это быстро, «Яндекс» использует тысячи серверов. Сервера объединены в кластеры и даже в кластеры кластеров. Архитектура поиска «Яндекса» устроена так, что к уже существующим серверам можно легко добавлять новые — для новых данных из постоянно растущего Интернета.

Все пользовательские запросы сначала попадают в компьютерную систему «метапоиск». Метапоиск обрабатывает каждый запрос в реальном времени — выясняет все необходимые данные про запрос (из какого региона он был задан, к какому классу относится и т. п.), проводит лингвистическую обработку. Затем метапоиск проверяет, формировались ли в последнее время результаты поиска для этого запроса. Результаты поиска по часто задаваемым запросам некоторое время хранятся в памяти метапоиска, а не формируются каждый раз заново. И если вновь пришедший запрос оказался популярным, метапоиск покажет пользователю заранее сохраненные результаты.

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

Каждый из серверов отдает список документов, в которых есть слова из запроса, обратно в метапоиск. Там они объединяются, ранжируются с помощью технологии «Матрикснет» и попадают на страницу результатов поиска. Благодаря такой организации поиска «Яндекс» может отвечать пользователю за доли секунды…

Чтобы вникнуть в суть вопроса, человеку нужно подумать, а поисковой системе — провести лингвистический анализ запроса. Только потом можно приступать к поиску. Именно при анализе запроса система решает, по каким словам и словоформам нужно искать. Например, по запросу «гостиницы в Иркутске» недостаточно найти документы с таким сочетанием слов. Хорошие ответы могут оказаться в документах со словами «отели в Иркутске», «иркутские гостиницы», «Иркутск гостиница» и т. д. Анализируя вопрос пользователя, система определяет язык запроса, проводит морфологический разбор каждого слова, выбирает нужные для поиска словоформы и отсекает лишние.

На весь анализ запроса — определение языка, разбор слов, поиск синонимов и т. д. — уходят лишь доли секунды.

Анализ запроса начинается с определения языка. Например, слово «дружина» в русском языке означает «военная рать», а в украинском — и «военная рать», и «жена». Чтобы понять, что имеет в виду пользователь, нужно выяснить, на каком языке он общается с поисковой системой. Для этого «Яндекс» смотрит, какой алфавит использует человек, какие в запросе есть характерные сочетания букв и слова. Так, по запросу «дружина князя Игоря» «Яндекс» будет искать информацию о войске, а по запросу «дружина князя Iгоря» — еще и о жене полководца, княгине Ольге.

Кроме того, при определении языка поисковая система обращает внимание на регион пользователя и язык интерфейса. Например, если человек задает вопрос из Украины и использует интерфейс на украинском языке, это будет дополнительным фактором, чтобы посчитать запрос украиноязычным.

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

По словоформе, которая есть в запросе, не всегда можно точно сказать, какое слово имел в виду человек. Например, в запросе «стали для ножей» «стали» — это не только существительное «сталь», но и глагол «стать». И в одном случае («стали для ножей») нужно искать формы существительного, а в другом («стали выпадать волосы что делать») — формы глагола. В такой ситуации нужно избавиться от неоднозначности, то есть снять омонимию. Омонимия — это совпадение слов (словоформ) с разным лексическим значением.

Назад Дальше