четверг, 29 апреля 2010 г.

Индексирующую часть поисковиков

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

Технически модуль скачивания может быть либо мультитредовым (Altavista Merkator), либо использовать асинхронный ввод-вывод (GoogleBot). В любом случае, разработчикам попутно приходится решать задачу многопоточного DNS-сервиса. В Яндексе реализована мультитредовая схема, скачивающие треды называются червями (worms), а их менеджер — погоняльщиком червей (wormboy).

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

Для скачивания робот использует протокол HTTP (иного просто нет, это полный синоним слова «веб»), поэтому многочисленные вопросы вебмастеров: «а что происходит с активными документами», «а индексирует ли ваш робот Server Side Includes?» — просто-напросто не имеют смысла. Почему?

Суть HTTP-протокола в следующем. Робот передает серверу строчку: «GET /path/document» и иные полезные строки, входящие в HTTP-запрос, а в ответ получает текстовый поток, в начале которого — несколько служебных строк HTTP-заголовка, выдаваемых веб-сервером (непосредственно или с помощью вашего скрипта), а затем уже и сам документ. Это все.

Как формируется документ, из активных или пассивных частей он состоит, робот не знает и знать в принципе не может. Он имеет дело с полностью сформированным потоком, который ему возвращает ваш веб-сервер.

Скачивание может быть организовано на разных принципах: «в ширину», по цитируемости, тематической локальности, по PageRank, — но цель одна — свести до минимума сетевой трафик при максимальной полноте. Поэтому эффективное скачивание — целая наука, которой посвящены центральные доклады на лучших международных конференциях (WWW Conference, VLDB и т. п.).

Тем не менее, у всех модулей скачивания всех искалок есть общие черты. Во-первых, они подчиняются правилам для роботов, записанным в файле robots.txt, который должен лежать в корне каждого сервера. Там вебмастер может указать желательные и нежелательные области доступа тем или иным роботам (или всем сразу). Контроль поведения роботов возможен и при помощи строчки , помещаемой в документ. Тогда робот будет подчиняться тому, что там написано «по-документно».

Однако кроме фильтров, устанавливаемых вебмастером, у роботов есть и свои собственные фильтры.

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

Во-вторых, каждый робот поддерживает свой собственный список ресурсов: наказанных за спам или отфильтрованных по какой-нибудь технической причине. Об этом мы поговорим чуть позже, а пока лишь подчеркнем, что поисковики, как правило, не берут на себя функцию общественного цензора и не фильтруют «плохое» или «противозаконное» содержание. В лучшем случае они предоставляет подобную фильтрацию как специальный сервис. И здесь мы вплотную подходим к этической проблеме, слишком глубокой для обсуждения в короткой статье. Сформулирую лишь «возможный принцип»: качество поиска информации не связано с качеством самой информации. Поисковик — своего рода зеркало, отвечающее только за качество процесса отражения, но не предметов, которые в нем отражаются. http://seo-miheeff.ru/site_optimization_what_is_it.php

Комментариев нет:

Отправить комментарий