Яндекс для всех
Шрифт:
А вот что рассказывали о решении аналогичных задач на Яндексе.
Если применить к поиску на Яндексе традиционные термины Distributed Information Retrieval, то можно выделить следующие приемы распараллеливания.
1. Разделение коллекции документов— начиная с весны 2000 года, в Яндексе используется "параллельный поиск" в нескольких поисковых источниках. Параллельный поиск— это одновременный поиск в специализированных базах (коллекциях), предлагаемых поисковой системой. Обычно, источник — это отдельная база небольшого размера, отличная от "большой" базы документов. Подразумевается, что документы, индексируемые в такой базе, имеют некоторую регулярную структуру. Если при поиске по обычной базе находятся и документы из базы параллельного поиска, точно соответствующие запросу, то одновременно (параллельно) с обычным результатами поиска выдается
В "Яндексе" есть четыре базы параллельного поиска:
• по новостям (обновление каждые 10 минут, ежедневно около 3000 новостей);
• по товарным предложениям интернет-магазинов (ежедневное обновление, примерно 300 000 товаров);
• по заголовкам статей энциклопедий (обновление раз в месяц, около 200 000 статей);
• по каталогу ("ручному" описанию веб-ресурсов).
Особый интерес с точки зрения традиционных поисковых технологий представляет техника разделения большой базы документов, то есть собственно базы веб-страниц. По состоянию на 2002 год она состояла из 60 млн документов и была разделена на 30 частей.
Среди особенностей текущей реализации разделения веб-коллекции в Яндексе можно отметить следующее:
• есть центр контроля и распределения URL;
• отсутствует репликация коллекции по машинам;
• распределение документов по коллекциям случайно.
2. Первая фаза обработки запроса: выбор коллекции, трансформации запроса— пользователь может явно указать, в какой коллекции следует искать. Если этого не сделано, то на основе лингвистического (точнее, эвристического) анализа запроса Яндекс может сделать допущение о приоритете специализированной коллекции или подходящей к характеру запроса рубрики каталога.
3. Вторая фаза обработки запроса: раздача запроса по коллекциям— обычно используются все коллекции. Собирающий сервер раздает в коллекции модифицированные запросы, в которых для каждого термина сообщается глобальное значение его обратной частоты(IDf в терминах традиционного IR). Для этого на всех "собирающих" серверах хранится глобальная статистика терминов. Она изменяется медленно, поэтому обновляется относительно редко. Статистика подсчитывается по считающейся наиболее универсальной — вебовской — коллекции. Таким образом, каждая поисковая машина ищет ответ на запрос с назначенными "сверху" глобальными частотами, и значения релевантности, вычисляемые в разных коллекциях, можно считать последовательными и вычисляемыми "в одной системе координат". Модификации запросов этим не ограничиваются, и для специализированных коллекций (например, "энциклопедии") могут быть и другими, в том числе и очень специфическими.
4. Третья фаза обработки запроса: исполнение и ранжирование запроса в коллекциях— запрос выполняется паралельно для всех коллекций.
Следует отметить, что веб-коллекции документов распределены по машинам произвольно и, вообще говоря, могут быть расположены все вместе на одной машине. Слияние результатов производится на том из собирающих (метапоисковых) веб-серверов, на который попадал пользователь при заходе по адресу www.yandex.ru. Процесс раздачи запроса, описанный здесь, позволяет корректно ранжировать слитый результат. При этом не требуется переранжирование результатов, полученных из разных неоднородных коллекций с использованием локальных IDF, а также не нужен динамический обмен данными между источниками для вычисления глобальнойIDF.
1.2.1. "Пауки"
Мы ищем в Яндексе информацию и новости, картинки и значения слов, товары и услуги. На сегодняшний день в базе данных накоплена информация о миллионах документов и сайтов, огромном количестве новостей, графических изображений, сотнях тысяч предлагаемых товаров и услуг. За обновление информации в ней отвечают различные роботы.
Вот они, те роботы, которые выполняют основную работу по поиску и индексированию информации:
Yandex/1.01.001 (compatible; Win16; I) — основной индексирующий робот;
Yandex/1.01.001 (compatible; Win16; P) — индексатор картинок;
Yandex/1.01.001 (compatible; Win16; H) — робот, определяющий зеркала сайтов;
Yandex/1.02.000 (compatible; Win16; F) — робот, индексирующий пиктограммы сайтов (favicons);
Yandex/1.03.003 (compatible; Win16; D) — робот, обращающийся к странице при добавлении ее через форму "Добавить URL";
Yandex/1.03.000 (compatible; Win16; M) — робот, обращающийся при открытии страницы по ссылке "Найденные слова";
YaDirectBot/1.0 (compatible; Win16; I) —
А кроме них есть и несколько агентов, которые занимаются проверкой доступности сайта или документа, на который стоит ссылка в соответствующем сервисе. Их тоже несколько:
Yandex/2.01.000 (compatible; Win16; Dyatel; C) — "простукивалка" Яндекс. Каталога. Если сайт недоступен в течение нескольких дней, он снимается с публикации. Как только сайт начинает отвечать, он автоматически появляется в Каталоге.;
Yandex/2.01.000 (compatible; Win16; Dyatel; Z) — "простукивалка" Яндекс. Закладок. Ссылки на недоступные сайты помечаются серым цветом;
Yandex/2.01.000 (compatible; Win16; Dyatel; D) — "простукивалка" Яндекс. Директа. Она проверяет корректность ссылок из объявлений перед модерацией. Никаких автоматических действий не предпринимается;
Yandex/2.01.000 (compatible; Win16; Dyatel; N) — "простукивалка" Яндекс. Новостей. Она формирует отчет для контент-менеджера, который оценивает масштаб проблем и, при необходимости, связывается с партнером.
Если о наименованиях роботов информация не является закрытой (в любом случае, ее можно обнаружить в логах сайтов, которые эти роботы посещали), то сведения о том, на каком сетевом адресе работает тот или иной робот, закрыты. Связано это с необходимостью уменьшить вероятность некорректного использования этой информации в целях продвижения сайтов. С этой же целью сетевые адреса время от времени изменяются.
Зачем эта информация нужна вам? Если вы являетесь владельцем сайта, и у вас установлен механизм, собирающий информацию о ваших посетителях, в эти данные попадет и информация о посетивших ваш проект роботах. Вы будете в курсе, какие роботы и когда вас посещали и какие страницы просматривали.
1.2.2. Индекс
Огромный объем информации, размещенной в Интернете, приводит к разрастанию Индекса. С некоторой долей приближения информацию можно разделить на две категории — условно постоянную и переменную. К переменнойинформации можно отнести публикации информационных изданий и аналогичных сервисов, записи в блогах, предложения онлайновых магазинов, иные сервисы, где информация меняется с большой частотой.
Обработка быстроменяющейся информации потребовала иного подхода. Были разработаны новые технологии и алгоритмы, новые базы и поисковые роботы. Каждой отдельной базе соответствовал собственный Индекс. Поисковые базы были разработаны для поиска по словарям и энциклопедиям, по каталогу сайтов, по предложениям интернет-магазинов, новостям и блогам.
Но какие бы новые технологии ни создавались, какими бы совершенными ни становились технические средства, объем накапливаемой информации заставляет наращивать вычислительные мощности. Если первый Индекс размещался на обычном компьютере, стоявшем в буквальном смысле "в ногах" у разработчика, то теперь для размещения аппаратных средств построены специальные помещения, оборудованные всем необходимым для обеспечения непрерывной работы. А компьютер, положивший начало поисковой системе, теперь находится на выставке раритетов Яндекса.
1.2.3. Поисковый механизм
Начиная выполнять поиск с помощью Яндекса, мы может в явном виде указать, в какой базе (коллекции документов, типе документов) следует выполнять поиск. Если мы не указываем этого, то на основе анализа запроса Яндекс самостоятельно делает допущение о приоритете специализированной коллекции над основной, самостоятельно подбирает подходящую к запросу рубрику каталога.
Чаще всего для поиска используются все базы. При этом собирающий сервер раздает в них модифицированные запросы, прошедшие предварительную обработку. Эта обработка заключается в том, что каждому термину в запросе сообщается глобальное значение его обратной частоты, подсчитываемой по коллекции веб-страниц. Такая обработка требуется для того, чтобы поиск велся по единым правилам, и значения релевантности, вычисляемые в разных коллекциях, можно было бы считать последовательными и вычисляемыми "в одной системе координат".
Модификации запросов этим не ограничиваются, и для специализированных коллекций (например, "энциклопедий") могут быть и другими, в том числе и очень специфическими.
Запрос выполняется параллельно для всех коллекций, а слияние результатов, как и указывалось ранее, производится на том из собирающих (метапоисковых) веб-серверов, на который попадал пользователь при заходе по адресу www.yandex.ru. Результаты поиска по наиболее крупным источникам, если в них найден хоть один ответ, показываются рядом со ссылками из веба (справа — одна картинка и ссылка на остальные, а также ответ Маркета). Ответ остальных источников может показываться сверху или снизу результатов поиска, если он оказался достаточно релевантным — так работают Новости, Энциклопедии, Каталог.