"Яндекс" научили искать в режиме реального времени
АрхивИнтерактивВ калифорнийском офисе компании был разработан поисковый бот Orange, индексирующий часто обновляемые страницы. Сотрудник "Яндекса" рассказал о подробностях.
Поисковик "Яндекс" начал использование системы поиска, которая позволяет искать по только что созданным документам - буквально через минуты после их появления. В пресс-релизе компании сообщается, что количество запросов, в ответ на которые нужна самая свежая информация, в дни важных событий достигает восьми процентов, а в обычные - около двух. Новые алгоритмы позволяют поисковику удовлетворять этот спрос.
В основе этой системы - новый поисковый робот под названием Orange. Он отслеживает появление в интернете новых страниц и буквально за секунды включает их поисковую базу. Когда происходит поиск, их оттуда извлекает так называемый "Real-Time поиск". В блоге компании сообщаются некоторые подробности устройства нового поискового механизма. В частности, говорится о том, что в первую очередь он старается обращать внимание на новостные и прочие часто обновляемые сайты.
Сообщается также, что обе технологии были созданы в калифорнийской офисе компании в рамках инициативы Yandex.Labs. Федор Романенко, менеджер качества поиска, раскрыл для "Компьютерры" некоторые детали.
- Есть ли у быстрого робота какие-то особенности индексации? Или же это просто отдельная версия обычного поиска, ориентированная на часто обновляющиеся сайты?
Задача двух новых технологий Яндекса - робота "Orange Crawler" и "Real-Time поиска" - уменьшить до считанных секунд время появления новых важных страниц в поиске, которое раньше можно было сократить для части документов до 20 минут (но не устранить полностью), а также рассчитывать ссылочные факторы, которые используются для отбора самых интересных страниц и их ранжирования на поиске.
Для этого робот Orange должен уметь обрабатывать и индексировать документы (в частности, рассчитывать ссылочные факторы ранжирования) по одному, в отличие от большого робота, который сортирует страницы "пакетами" - какое-то время готовит версию индекса с новыми документами, обрабатывая сразу много страниц, потом выкладывает её на поиск. Обработка документов по одному позволяет сократить до секунд время выкладки конкретного документа, но более затратна с точки зрения нагрузки на сервера; к тому же она не позволяет вычислять факторы ранжирования, основанные на глобальной статистике по всем страницам, и факторы класса PageRank.
При этом Orange и "большой робот" работают вместе: новый робот подготавливает "быструю" часть поисковой базы, которая должна использоваться совместно с основной базой.
Другая новая технология Яндекса - "Real-Time поиск" - на ходу добавляет документы в поисковую часть по одному за секунды (обычный поиск работает на индексе, который обновляется целиком с некоторой периодичностью).
- Чтобы показывать наиболее актуальные результаты, найденные быстрым поиском, их нужно ставить выше в выдаче поисковика. Значит ли это, что сайт, обновляющийся чаще, получит преимущество при ранжировании?
Задача поисковика - выдавать релевантную информацию по любому запросу. Необходимо понять, обязательно ли релевантный ответ на конкретный запрос должен быть свежим. Если должен, и на некотором сайте есть релевантные свежие страницы, то они могут быть показаны в результатах поиска. Но сам факт свежести страницы не является достаточным, релевантность определяется с помощью сотен факторов ранжирования с применением технологии Матрикснет.
- Входят ли блоги и социальные сети в круг индексируемых быстрым поиском сайтов или ими отдельно занимается движок "Яндекс.Блогов"?
Да, Orange работает в связке с поиском по блогам "Яндекса" и получает от него информацию о новых постах. Но он индексирует её не на 100%, отбирая более ценные сообщения по разным критериям - в их числе, например, авторитетность блога. Это связано, в частности, с тем, что блогохостинги - очень крупные сайты, имеющие ограничения на количество скачиваний url в сутки.
- В пресс-релизе сказано, что быстрый поиск стремится находить в первую очередь новости. Используется ли для этого каким-нибудь образом алгоритм "Яндекс.Новостей"? Использует ли быстрый поиск каналы RSS, отдаваемые сайтами?
Мы используем много разных способов получения сигналов о появлении новой информации в интернете. Один из механизмов - из RSS-потоков партнеров "Яндекс.Новостей"; в то же время, Orange умеет и самостоятельно обнаруживать и прокачивать RSS-потоки в интернете, частота переохода которых зависит от авторитетности сайта. Общая рекомендация для вебмастеров - помимо создания RSS-потоков не забывать ставить на них ссылки из заголовков html страниц вида <link rel="alternate" type="application/rss+xml" ...>, это увеличивает шанс обнаружения RSS-потока и получения им большего веса
- Требует ли быстрый поиск какого-то особенно быстрого канала? Или те секунды, за которые он срабатывает - это и есть скорость скачивания страниц?
Средняя скорость скачивания страницы из интернета находится в пределах одной секунды. Orange не нужно скачивать больше страниц, чем "большому роботу", который вынужден регулярно освежать все когда-то скачанные страницы. Таким образом, никаких специальных требований к скорости канала для Orange нет.
- Быстрый поиск устроен как распределённая система - есть ли у "Яндекса" другие сервисы, построенные тем же образом?
Практически все сервисы "Яндекса" работают на кластерах, однако у каждого сервиса своя специфика, поэтому в "Яндексе" применяются разные ПО и библиотеки для распределенной обработки запросов.
Большинство наших крупных сервисов, кроме, например, "Яндекс.Почты" или "Яндекс.Директа", требуют моментального ответа на запрос, но не требуют моментальной обработки данных. Поэтому задача, которую нам пришлось решать для создания архитектуры "свежего" поиска, нетипична - в её рамках мы должны одновременно обрабатывать огромное количество страниц, но таким образом, чтобы задержка для каждой измерялась секундами. Робот Orange и "Real-Time поиск" - первые проекты на этой технологи; возможно, в будущем она будет применяться и для других сервисов "Яндекса".