Поисковые системы состоят из пяти отдельных программных компонент.
Search engine results engine (система выдачи результатов) извлекает результаты поиска из базы данных.
Spider (паук) — это программа, которая скачивает веб-страницы. Она работает точно так же, как ваш браузер, когда вы соединяетесь с веб-сайтом и загружаете страницу. То же действие (скачивание) вы можете наблюдать, когда просматриваете некоторую страницу, выбирая «просмотр HTML-кода» в своем браузере.
Crawler (краулер, «путешествующий» паук) – программа, которая автоматически проходит по всем ссылкам, найденным на странице. Crawler выделяет все ссылки, присутствующие на странице. Его задача — определить, куда дальше должен идти паук, основываясь на ссылках или исходя из заранее заданного списка адресов. Краулер, следуя по найденным ссылкам, осуществляет поиск новых документов, еще неизвестных поисковой системе.
Indexer (индексатор) разбирает страницу на различные ее части и анализирует их. Элементы типа заголовков страниц, заголовков, ссылок, текста, структурных элементов, элементов BOLD, ITALIC и других стилевых частей страницы вычленяются и анализируются.
Database (база данных) — хранилище всех данных, которые поисковая система скачивает и анализирует. Она часто требует огромных ресурсов.
Неверно считать, что поисковые машины сразу ищут сайт, как только вы ввели ключевое слово в запросе. Это — чистой воды миф, что поисковые машины просматривают весь интернет в поисках нужного запроса. Поисковая машина может искать только в пределах собственной базы данных (индекса). И конечно, количество и новизна данных определяется тем, как часто эта база данных обновляется Часто такое обновление базы данных той или иной поисковой машины называют Апдейт (update, (англ.) модернизация; корректировка; обновление информации, данных) — пополнение базы данных поисковой машины новой информацией.
Крупные поисковые машины индексируют информацию подобно каталогу в библиотеке. Храня большое количество информации, они должны уметь быстро находить нужные документы по заданным ключевым словам или фразам. Но самих веб-страниц еще больше, чем непосредственно данных о них. Интернет в целом не имеет никакой четкой структуры, и сайты обладают огромным количеством вариантов авторской разработки и содержания по сравнению со стандартными текстами. Это делает почти невозможным для поисковой машины применение стандартных методов, используемых в управлении базой данных и в обычном информационном поиске.
Поисковые алгоритмы (математические методы программирования, сортирующие найденные результаты) каждого из поисковых сервисов являются уникальными. Вы можете проверить это сами: введите ключевое слово или фразу в поисковую систему
Google, являющийся самой крупной поисковой машиной в мире и по популярности среди тех, кто ищет, и по базе данных из нескольких миллиардов файлов, имеет только малую долю данных, содержащихся во всей глобальной сети. Сеть растет быстрыми темпами. Исследование, выполненное в 2000 г., обнаружило приблизительно 7.5 миллионов страниц, добавляемых каждый день (Lyman, Varian и др. — 2000 г.). Таким образом, невозможно представить, что какая-либо поисковая машина будет когда-нибудь иметь ежедневно обновляемые данные обо всех сайтах сети.
Здесь речь идет о практических ограничениях, заключающихся в размере веб- страницы. В среднем, каждая страница содержит около 5-10 Кб текста, поэтому, даже если учитывать, что поисковая машина хранит информацию только о текстовых страницах, это уже выливается в десятки Тбайт, которые находятся в базе даны поисковых машин. Есть так называемая «невидимая сеть», которая представляет собой более 550 миллиардов документов [Lyman, Varian и др. — 2000 г.]. С этими документами поисковые машины или не знакомы (не связаны с другими сайтами), или не могут получить доступ (некоторые участки защищены паролем), или их технология просто не позволяет им «захватить» эти страницы (например, те, которые включают только сложные типы файлов: визуальные, аудио, мультипликация, сжатые и запароленные файлы и т. д.). Постоянно «ползать» по сети и индексировать веб-страницы со множеством документов, как это делают поисковики, — задача не из дешевых. Вы сами убедитесь в этом, когда мы изучим анатомию поисковой машины. Поддержка базы данных поисковой машины требует много инвестиций для обеспечения работы, необходимых технических ресурсов и продолжения научных исследований.
Мы должны понимать, что базы данных поисковых машин постоянно изменяются. Google может иметь больше страниц, внесенных в свой индекс, чем, скажем, Yandex (www.yandex.ru). Однако, например, если Yandex обновит свои данные быстрее, чем Google, то даже при его относительно небольшом количестве страниц это может дать пользователю более свежие и всесторонние результаты. Кроме чисто технического фактора, есть также много других, которые должны быть приняты во внимание.
Мы должны упомянуть здесь, что зачастую поисковые машины указывают большой объем страниц, содержащихся в их базе данных, как признак того, чтобы быть лучшими. Это своего рода игра или соревнование между количеством и качеством имеющихся ресурсов.
Хотя размер — это важный индикатор, другие факторы, касающиеся качества базы данных, могут обеспечить лучшие результаты в плане того, что они гораздо больше соответствуют ключевому запросу пользователя (релевантны). Обнаружение релевантных страниц в сети для индексации — приоритет поисковых машин. Но как машина может определить, насколько важна та или иная страница? Некоторые поисковые машины, например, Яндекс, даже используют ручную проверку на релевантность, так называемые асессоры. Асессоры работают по заданной методике. Существуют определенные критерии, по которым должно измеряться качество страницы. Асессор вводит поисковый запрос и ставит определенную оценку, насколько по этим критериям релевантны сайты, находящиеся в поисковой выдаче. Позже мы еще поговорим о методах, используемых поисковыми машинами для определения того, что делает одни веб-страницы важнее других.
Поскольку поисковые машины часто возвращают несоответствующие запросам результаты, мы должны также остановиться подробнее на одной из проблем, связанной с тем, что информация в базах данных машин должна постоянно обновляться. Кроме новых страниц, которые каждый день появляются в сети, непрерывно обновляются и старые. Рассмотрим следующий пример. В одном из исследований говорится о том, что в результате четырехмесячного изучения полумиллиона страниц было выяснено, что более 23 % всех веб-страниц обновляются ежедневно. Около половины страниц обновлялась каждые десять дней, а некоторые документы и вовсе перемещались на новый доменный адрес [Arasu, Cho, Garcia-Molina et al — 2001].
Спайдеры поисковых машин находят миллионы страниц в день, которые заносятся в базу данных и индексируются. Но, как вы можете понять из вышеописанного, поисковикам очень трудно определить частоту изменений страниц. Спайдер поисковой машины может «заползти» на страницу один раз, затем вернуться к ней, чтобы обновить, и, может быть, обнаружит, что были сделаны какие-то изменения. Но он не может обнаружить, сколько раз страница изменялась, начиная с последнего его посещения.
Некоторые веб-сайты изменяются очень часто. Например, новостные сайты, где информация должна постоянно обновляться или сайты интернет-магазинов, где регулярно происходит изменение цен, номенклатуры продукции и т. д. Сегодня проводится много как научных, так и коммерческих исследований для развития методов оперативного обнаружения свежей информации. Даже если «важная» страница будет проверяться спайдером каждые 48 часов, веб-мастера могут обновлять эти страницы гораздо чаще.
Если веб-мастер загружает страницу на сервер, а затем делает страницу доступной для поиска через «Добавить URL» в поисковой машине, или если страница просто найдена поисковой машиной по ссылке с другого сайта, то содержание страницы в индексе будет именно то, что будет проиндексировано поисковой машиной во время обхода.
Так, если в день индексации страница имеет определенное число слов, которые содержатся в определенном числе параграфов и в определенной степени относятся к ключевому слову, — все это будет записано в индексе поисковой машины до следующей индексации. Если автор страницы решит сделать новые дополнения (изображения, заголовки, редактирование текста), то поисковая машина не будет знать об этом до следующего посещения страницы. Если пользователь делает запрос на определенную тему в тот день, когда поисковая машина как раз обновила эту страницу, то он получит обновленную информацию, которая уже попала в базу данных поисковика. Однако если пользователь выполняет поиск после того, как автор изменил страницу, то поисковая машина приведет его по ключевой фразе к той же странице, даже если автор, возможно, изменил контекст или убрал важные ссылки на тему, не ставя об этом в известность поисковые машины. Конечно, такая ситуация расстраивает пользователя, который хотел найти релевантную его запросам веб-страницу. Это, как вы понимаете, является главной проблемой поисковых машин. Они просто не могут постоянно следить за изменениями веб-страниц.
Посмотреть, какая версия страницы в настоящее время находится в индексе поисковой системы можно кликнув в результатах поиска (SERP) на ссылку «Сохраненная копия».