Анатомия поисковой машины

Анатомия поисковой машины

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

Обеспечение содержательного доступа к большим объемам информации — это трудная задача. Наиболее успешные методы и подходы к информационному поиску, распределение документов по категориям очень сильно полагаются на статистические технологии.

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

  • Модуль краулера/спайдера;
  • Модуль склада/базы данных;
  • Модуль индексатора/анализа ссылок;
  • Модуль поиска/ранжирования;
  • Пользовательский интерфейс запроса.

Модуль краулера/спайдера: (термины краулер, спайдер и робот будут использоваться здесь попеременно).

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

Поисковые машины находят веб-страницы тремя способами:

  • при помощи использования стартового сбора URL-страниц (по-другому веб- страниц) и извлечения из них ссылок, чтобы следовать по ним (например, выбирая их из каталогов);
  • из списка URL, полученного при прошлом исследовании сети (используя первые результаты проведенных поисков);
  • URL, добавленных искусственно веб-мастерами непосредственно в поисковую машину (при помощи «Добавить URL»).

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

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

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

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

Описанные краулеры, спайдеры и роботы — это автоматизированные программы, которыми обычно управляют поисковые машины, ползающие по ссылкам сети и собирающие первичные текстовые данные и другую информацию для индексации.

Самые ранние краулеры были запрограммированы для довольно-таки общих целей. Они обращали мало внимания на качество или содержание страниц, а больше внимания акцентировали на количестве. Их цель была — собрать как можно больше страниц. Однако сеть тогда обладала гораздо меньшими объемами, поэтому они были достаточно результативными с точки зрения обнаружения и индексации новых веб-страниц.

С ростом сети краулеры столкнулись со многими проблемами: масштабируемость, отказоустойчивость и ограничение пропускной способности. Быстрый рост сети опередил возможности систем, которые не были достаточно подготовленные, чтобы досконально исследовать загружаемую информацию, с которой они сталкивались. Попытка управлять набором программ одновременно на таких уровнях, не повреждая при этом систему, стала невозможной.

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

Хотя ползание по сети — очень быстрый процесс, фактически, краулер делает те же самые действия, что и рядовой серфер-пользователь.

Краулер начинает или с одного URL, или с набора страниц. Например, страниц, внесенных в определенный каталог, которые он затем загружает, извлекает гиперссылки и затем ползет к страницам, на которые указывают эти ссылки. Как только краулер натыкается на страницу без других ссылок, по которым он может последовать, он возвращается на уровень назад и переходит к ссылкам, которые он, возможно, пропустил раньше, или к тем ссылкам, которые были запрограммированы заранее в очереди для следующего раза. Процесс повторяется от сервера к серверу, пока на страницах больше нечего будет загрузить, или пока некоторые ресурсы (время, ограничение пропускной способности) будут достигнуты или исчерпаны.

Слово «краулер» почти всегда используется в единственном числе, однако большинство поисковых машин имеет множество краулеров с целым «флотом» агентов, выполняющих масштабную работу. Например, Google, как поисковая машина нового поколения, начавшаяся с четырех краулеров, каждый раз открывает приблизительно триста ссылок. На пиковых скоростях они загружали информацию более чем из 100 страниц за секунду. Google теперь работает на трех тысячах компьютерах с системой Linux, общий размер винчестеров которых более 90 Тбайт. Они добавляют 30 новых машин в день к их серверу, только чтобы не отставать от роста.

Краулеры используют традиционные схематичные алгоритмы, чтобы обследовать сеть. График составлен из того, что называется «узлами» и «краями» (nodes and edges). Узлы — это URL, а края — ссылки, вложенные в страницы. «Края» — это передовые ссылки ваших веб-страниц, которые указывают на другие страницы, и ссылки возврата, которые указывают путь назад на ваши страницы с любого другого места сайта. График сети может быть представлен математически для поисковых целей с помощью использования алгоритмов, где будет определено пересечение или «начальной широты», или «начальной глубины».

Поиск исходя из «начальной широты» означает, что краулер восстанавливает все страницы вокруг отправной точки ползания прежде ссылок, ведущих еще дальше от начала. Это самый общий путь, по которому спайдеры следуют за линками. Поиск исходя из «начальной глубины» может быт использован для того, чтобы следовать за всеми ссылками, начиная с первой ссылки с первой страницы, затем с первой ссылки на второй странице и так далее. Как только первая ссылка на каждой странице будет посещена, он перемещается на вторую ссылку, а затем — на каждую последующую. Метод поиска исходя из «начальной широты» позволяет уменьшить нагрузку на серверы, которая быстро распределяется и помогает избежать того, чтобы какому-то одному серверу придется быстро отвечать на тот или иной запрос постоянно. Метод «начальной глубины» программируется легче метода «начальной широты», но ввиду своих возможностей может привести к добавлению менее важных страниц и отсутствию свежих результатов поиска.

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

Поисковые машины вообще предпочитают идти по более коротким URL на каждом посещенном сервере, используя логику, что URL с более короткими компонентами, вероятно, будет более общими (или полезными) страницами.

Это означает, что: http://www.mysite.ru/bluecars.html вероятно, считалось бы более важным, чем http://www.mysite.ru/products/webcatalog/cars/blue/spec~series17.html

или еще более длинный адрес, который ведет к более глубокой информации в иерархии веб-сайта. Спайдеры могут быть ограничены определенным количеством подразделов (слешей) сайта, по которым они будут искать информацию. Десять слэшей — это максимальная глубина, средней же глубиной, как правило, считается три слэша.

Важные страницы, которые находятся более глубоко на сайте, вероятно, придется напрямую регистрировать в поисковой машине владельцу сайта, а также обязательно создавать карту сайта. С постоянным развитием сети и связанных с ней технологий, таких как ASP, PHP и Cold Fusion, часто бывает, что многие важные страницы сейчас «скрыты» в глубине сетевых баз данных, но это уже не относится к алгоритмам поисковых систем.

ОСТАВЬТЕ ОТВЕТ