Владислав Дорофеев - Яндекс Воложа. История создания компании мечты
- Название:Яндекс Воложа. История создания компании мечты
- Автор:
- Жанр:
- Издательство:Альпина Паблишер
- Год:2013
- Город:Москва
- ISBN:978-5-9614-3233-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Владислав Дорофеев - Яндекс Воложа. История создания компании мечты краткое содержание
«Яндекс» — это, конечно, компания мечты. По всем параметрам. В пятерке поисковиков мировой Сети, в тридцатке самых инновационных компаний мира, и одно из самых желанных мест для работы в России. Бизнес, возникший из головы, интеллекта, знаний, упорного труда, способности к риску и удачи — возникший, несмотря на давление со стороны инвесторов, власти и конкурентов.
Из увлекательного повествования, максимально приближенного к хронике, понятно, что «Яндекс» — это невероятная по силе и напору машина генерации событий, явлений и открытий. Во главе с Аркадием Воложем компания на протяжении уже более полутора десятков лет находится на гребне успеха.
В процессе работы над книгой автор, профессиональный журналист, задействовал сотни источников и десятки личных контактов. Прочтите эту уникальную книгу, и вы наверняка извлечете для себя рецепты построения своей компании и команды мечты.
Секретов больше нет.
Яндекс Воложа. История создания компании мечты - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Робот Orange предназначен для поиска в реальном времени. Его планировщик и паук настроены так, чтобы находить новые документы и выбирать из огромного их количества все, хоть сколько-нибудь интересные. Каждый такой документ Orange сразу обрабатывает и выкладывает на базовый поиск. Срочных документов не очень много по сравнению с общим объемом Интернета, поэтому обновление базы в реальном времени можно делать и при дневных нагрузках на сервера.
Можно сказать, что поиск в Интернете состоит из двух больших частей. Первая — когда «Яндекс» ищет различные документы в Интернете и составляет поисковый индекс. Вторая — когда система ищет ответ на конкретный запрос пользователя в уже подготовленной поисковой базе…
Безусловно, поиск с помощью индекса ускоряет процесс ответа пользователю, как, например, предметный указатель в книге помогает быстрее найти нужное слово. Но размеры самого «предметного указателя» в поиске — огромны. Чтобы обрабатывать такие объемы данных и делать это быстро, «Яндекс» использует тысячи серверов. Сервера объединены в кластеры и даже в кластеры кластеров. Архитектура поиска «Яндекса» устроена так, что к уже существующим серверам можно легко добавлять новые — для новых данных из постоянно растущего Интернета.
Все пользовательские запросы сначала попадают в компьютерную систему «метапоиск». Метапоиск обрабатывает каждый запрос в реальном времени — выясняет все необходимые данные про запрос (из какого региона он был задан, к какому классу относится и т. п.), проводит лингвистическую обработку. Затем метапоиск проверяет, формировались ли в последнее время результаты поиска для этого запроса. Результаты поиска по часто задаваемым запросам некоторое время хранятся в памяти метапоиска, а не формируются каждый раз заново. И если вновь пришедший запрос оказался популярным, метапоиск покажет пользователю заранее сохраненные результаты.
Если же ответа в памяти нет, то метапоиск передает запрос на сервера другой компьютерной системы — «базового поиска». На базовом поиске хранится слепок Интернета, по которому ищет «Яндекс», — поисковая база. Она разбита на части, которые хранятся на разных серверах — искать ответ одновременно по нескольким частям базы данных быстрее, чем по всей базе целиком. Кроме того, у каждого сервера есть несколько копий. Это позволяет распределять нагрузку и не терять данные — если один из серверов не сможет своевременно ответить, информация все равно найдется на дублирующих серверах. Из тысяч серверов базового поиска метапоиск выбирает наименее загруженные — таким образом, чтобы вместе они содержали целую поисковую базу.
Каждый из серверов отдает список документов, в которых есть слова из запроса, обратно в метапоиск. Там они объединяются, ранжируются с помощью технологии «Матрикснет» и попадают на страницу результатов поиска. Благодаря такой организации поиска «Яндекс» может отвечать пользователю за доли секунды…
Чтобы вникнуть в суть вопроса, человеку нужно подумать, а поисковой системе — провести лингвистический анализ запроса. Только потом можно приступать к поиску. Именно при анализе запроса система решает, по каким словам и словоформам нужно искать. Например, по запросу «гостиницы в Иркутске» недостаточно найти документы с таким сочетанием слов. Хорошие ответы могут оказаться в документах со словами «отели в Иркутске», «иркутские гостиницы», «Иркутск гостиница» и т. д. Анализируя вопрос пользователя, система определяет язык запроса, проводит морфологический разбор каждого слова, выбирает нужные для поиска словоформы и отсекает лишние.
На весь анализ запроса — определение языка, разбор слов, поиск синонимов и т. д. — уходят лишь доли секунды.
Анализ запроса начинается с определения языка. Например, слово «дружина» в русском языке означает «военная рать», а в украинском — и «военная рать», и «жена». Чтобы понять, что имеет в виду пользователь, нужно выяснить, на каком языке он общается с поисковой системой. Для этого «Яндекс» смотрит, какой алфавит использует человек, какие в запросе есть характерные сочетания букв и слова. Так, по запросу «дружина князя Игоря» «Яндекс» будет искать информацию о войске, а по запросу «дружина князя Iгоря» — еще и о жене полководца, княгине Ольге.
Кроме того, при определении языка поисковая система обращает внимание на регион пользователя и язык интерфейса. Например, если человек задает вопрос из Украины и использует интерфейс на украинском языке, это будет дополнительным фактором, чтобы посчитать запрос украиноязычным.
Определив язык запроса, «Яндекс» переходит к морфологии. Знание морфологии позволяет находить документы, содержащие разные формы одних и тех же слов. Например, по запросу «стали для ножей» «Яндекс» будет искать документы, в которых есть не только сочетание «стали для ножей», но и «сталь для ножа», «ножи сталь» и т. д. Анализируя запрос, «Яндекс» составляет список возможных словоформ для каждого слова.
По словоформе, которая есть в запросе, не всегда можно точно сказать, какое слово имел в виду человек. Например, в запросе «стали для ножей» «стали» — это не только существительное «сталь», но и глагол «стать». И в одном случае («стали для ножей») нужно искать формы существительного, а в другом («стали выпадать волосы что делать») — формы глагола. В такой ситуации нужно избавиться от неоднозначности, то есть снять омонимию. Омонимия — это совпадение слов (словоформ) с разным лексическим значением.
Чтобы выбрать для поиска наиболее вероятный список форм, система обращается к статистике совместной встречаемости слов и грамматических признаков. Например, в морфологическом разборе по запросу «стали для ножей» система выберет для поиска слово «сталь». Во-первых, потому что по статистике слово «сталь» чаще встречается со словом «нож», чем «стать». А во-вторых, потому что существительное в именительном падеже (в данном случае, «сталь») часто сочетается с существительным в родительном падеже («ножей»).
Для сбора статистики «Яндекс» использует Национальный корпус русского языка и свои собственные корпуса, где собрано огромное количество текстов в электронном виде.
После снятия омонимии поисковая система уже не будет искать слова, которые пользователь точно не имел в виду. В то же время, если ограничить поиск только словами из запроса, в поле зрения поисковой системы не попадут многие нужные документы. Ведь для одного и того же понятия в разных текстах могут использоваться разные слова, например на одном сайте может стоять аббревиатура, а на другом — полное наименование.
Для того чтобы учесть все возможные варианты, «Яндекс» расширяет запрос, добавляя другие формулировки с тем же смыслом. Например, вместе со сложносокращенным «физтех» «Яндекс» будет искать и официальное «Московский физико-технический институт», а по запросу «установка скайп» — еще и английское skype. Точно так же «Яндекс» добавляет в запрос разные написания чисел («Петр I» и «Петр Первый»), близкие по смыслу однокоренные слова, варианты написания и синонимы. Так, если в запросе есть «воронежский», система может добавить к нему однокоренное «Воронеж», к «авто-сервис мицубиши» — «автосервис мицубиси», а к «ветерок» — похожее «бриз». Выбирая, какое слово добавить, а какое нет, «Яндекс» смотрит, как часто это слово встречается с другими словами запроса — и в вопросах пользователей, и вообще в текстах. Однокоренные слова и синонимы система берет из соответствующих справочников и словарей, часть из которых «Яндекс» сам составляет специально для таких случаев.
Читать дальшеИнтервал:
Закладка: