Найдется все 05.11.2002 Илья Сегалович
2.3 Обработка содержания документа Что значат все эти модули для конкретного документа? Что делает поисковая система с документом после скачивания? Документ обрабатывается HTML-парсером (есть и другие форматы документов, и многие роботы их поддерживают), освобождающим документ от особенностей представления в этом формате и оставляющим только существенное для поиска: текст, заметные особенности шрифтового оформления, разбивка на абзацы, выделение ссылок и прочие полезные зоны в документе (с точки зрения возможностей поиска); для каждой ссылки запоминается, на какой URL она указывает, и т.д. Это не значит, что вебмастер может надеяться на полную гарантию того, что роботы никогда не будут понимать CSS или не ходить по ссылкам через javascript. Во-первых, роботы постоянно развиваются, во-вторых, в каждый момент времени разные роботы ведут себя по-разному. Но все же нельзя сбрасывать со счетов ограниченность поисковых роботов, как и вообще всех невизуальных агентов. 2.4 Собственно индексирование И наконец, из текста выделяются слова по языково-зависимым правилам (вы не забыли, что язык роботу уже известен?) и на слова «набрасываются» алгоритмами морфологического анализа (те поисковые системы, которые это практикуют) и алгоритмами «собственно индексирования» (инвертирование текста). Заметьте, что физически все эти этапы могут происходить в разных процессах или даже на разных компьютерах. Всё определяется логикой и функциональностью требуемых процедур и способом их оптимизации. В результате появляется индекс. Точнее, постоянно накапливается обновляющаяся часть индекса, которая периодически сливается с большим индексом. В Яндексе это происходит два раза в неделю. 3. Поиск. Путь запроса Итак, индекс построен. К браузеру подсел пользователь. Первым «зашедшего» на поисковый сервер пользователя встречает «умный» маршрутизатор (в случае с Яндексом это Cisco 7200), который переадресует нового пользователя на наименее загруженный веб-сервер. О загрузке веб-сервера устройство узнает через «обратную связь» одним из выбранных в конфигурации способов, например по числу одновременно выполняющихся процессов. С этого момента все запросы, приходящие с данного IP, то есть от данного пользователя, будут прозрачно переадресовываться на соответствующий веб-сервер. 3.2 Раздача запроса по серверам
Запрос модифицируется и рассылается на поисковые серверы. Их задача — выбрать документы, удовлетворяющие поисковому запросу, и отранжировать список. 3.3 Собственно поиск и ранжирование Этот процесс теснейшим образом связан с устройством индекса и техническими аспектами выбранной поисковой модели, то есть теми факторами, которые создатели системы считают важнейшими. Яндекс, например, «по умолчанию» ищет все словоформы даже для «несловарных» слов и при этом придает большое значение вхождению слов запроса в одно и то же или соседние предложения. Соответственно его основной индекс устроен по «леммам» и хранит номера слов и предложения для каждого слова в каждом документе. При этом Яндекс учитывает упоминания слов в заголовках и подзаголовках документа, шрифтовые выделения. Эта информация тоже кодируется в индексе. 3.4 Использование ссылок Особняком стоит учет ссылок на документы. Текст ссылок не только служит источником альтернативной поисковой лексики (например, позволяет находить популярные сайты даже по запросам с опечатками), но и является незаменимым ранжирующим компонентом в так называемых навигационных запросах, когда пользователю требуется перейти на популярный сайт, адрес которого он не знает. Индекс ссылочного поиска строится отдельными процедурами с учетом пересечения ссылок между кластерами. В ссылочный индекс в Яндексе входят и ссылки из Яндекс.Каталога, который по техническим причинам индексируется чуть полнее и регулярнее, чем другие каталоги. Для подавления примитивного непотистского спама (проставление взаимных ссылок с единственной целью поднять свой ранг) Яндекс использует смешанные автоматические и ручные приемы. 3.5 Слияние и группировки Отдельная тема — ранжирование при слиянии. Для корректного ранжирования баз разного размера и с разной глобальной статистикой слов Яндекс использует оригинальную идею модификации запросов, передаваемых в поисковые источники методом проставления весов для каждого слова на основе глобальной статистики. Наконец, важный момент — это группировки. Яндекс предоставляет широкие возможности по группированию результатов, он умеет группировать результаты по иерархическому дереву, по сайтам, регионам и пр., причем одновременно. При этом ранг группы (в частности сайта!) в Яндексе не эквивалентен рангу максимально релевантного документа; учитываются все найденные документы, хотя и очень аккуратным образом, чтобы не дать глубоко проиндексированным сайтам необоснованного преимущества. 3.6 Архитектура Я не знаю, как устроена жизнь на десятитысячных кластерах, но в Яндексе реализована двухуровневая схема. Индекс сразу строится в кластеризованном виде, в том, в котором будет использоваться в поиске. Почти весь последний год — это тридцать компьютеров, которые мы понемногу апгрейдим. Мы пока не практикуем разбиения базы по хостам, хотя, возможно, придем к этому.
|