Как работают поисковые системы в Интернете

Попавшим на эту страницу с помощью поисковой системы - посвящается...

Как работают поисковые системы в Интернете

World Wide Web (WWW) является компонентом сети Интернет, в котором насчитывается около 700 миллионов серверов, содержащих около 8 миллиардов страниц, могущих представить информацию на удивительно разнообразные темы. Проблема заключается в том, что помимо этого колоссального количества страниц и тем, названия многих страниц не соответствуют содержащейся в них информации, а разнообразие доменных имен серверов – вообще не поддается никакому описанию. В таком случае, если вас интересует конкретная тема, откуда вы узнаете, какие страницы нужно прочитать? Для этого большинство людей посещает Интернет-поисковик.

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

1. Они ищут в Интернете (или в избранных фрагментах Интернета) слова, имеющие значение.

2. Они создают индекс найденных слов и страниц, где они найдены.

3. Они позволяют пользователям искать слова или сочетания слов, входящих в этот индекс.

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

 

Поисковый Робот

Когда большинство людей говорят о поисковых системах Интернета, они подразумевают World Wide Web поисковые системы. Прежде, чем Веб стал наиболее заметной частью Интернета, уже существовали поисковые системы, помогающие людям найти информацию в сети. Программы с такими названиями, как «gopher» и «Archie» использовали индексные файлы, которые хранились на серверах, подключенных к сети Интернет. Они значительно уменьшали количество времени, необходимого на поиск программ и документов. В конце 1980-х годов, для получения информации из Интернета нужно было знание того, как использовать gopher, Archie, Veronica и остальные программы подобного рода.

Сегодня большинство пользователей Интернета ограничивают свой поиск пределами World Wide Web, поэтому мы тоже ограничим эту статью только поисковыми машинами, которые обрабатывают содержимое Веб-страниц.

Поисковый робот

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

Как любой паук начинает свое путешествие через Интернет? Как правило, отправной точкой списка являются активно используемые серверы и очень популярные страницы. Паук начинает с такого популярного сайта, индексируя слова на его страницах и исследуя каждую ссылку, найденную в пределах сайта. Таким образом, поисковая система начинает путешествовать, быстро продвигаясь по всем наиболее широко используемым частям Веб. Частота посещения сайтов, глубина их просмотра и защита от зацикливания (например, когда страница сайта ссылается на себя саму) – задается поисковыми алгоритмами. Глубина просмотра сайта – тоже зачастую бывает ограничена. Поэтому огромные сайты со сложной и запутанной иерархической структурой – зачастую бывают плохо проиндексированы поисковыми роботами. Так же вебмастер может самостоятельно добавить свой сайт в очередь на индексирование. Это особенно актуально для «молодых» сайтов, на которые пока не ведет ни одна внешняя ссылка.

Управлять пауком можно с помощью файла robots.txt, расположенного в корневой папке сайта.

Google начинал как академическая поисковая система. Описывая ее устройство, Сергей Брин и Лоуренс Пэйдж приводили пример того, как быстро их пауки могут работать. Они построили свою первоначальную систему с использованием нескольких пауков, как правило, трех одновременно. Каждый паук мог держать около 300 соединений с Web-страницами, открытыми одновременно. На максимуме своих возможностей, с помощью четырех пауков, их система могла сканировать более 100 страниц в секунду, производя пи этом около 600 килобайт данных.

Для  обеспечения скорости работы нужно построить систему подачи необходимой информации для пауков. На свое начальной стадии система Google была сервером, предназначенным для обеспечения пауков URL-адресами. Чтобы не зависеть от стороннего сервера доменных имен (DNS), который переводит имя сервера в IP адрес, Google имел свой собственный DNS, чтобы свести задержки к минимуму.

Когда Google паук посматривает HTML страницы, он принимает во внимание две вещи:

1. Слова в странице.

2. Где эти слова были найдены.

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

Эти различные подходы, как правило, стремятся заставить паука работать быстрее, и позволяет пользователям вести поиск более эффективно. Например, некоторые пауки будут отслеживать слова в названии, подзаголовках и связях, наряду с 100 наиболее часто используемыми словами на странице и каждым словом в первых 20 строках текста.

 

Мета-Теги

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

Все это предполагает, что владелец страницы на самом деле хочет, чтобы она была включена в результаты поисковой деятельности. Но иногда владелец страницы не хочет появляться в результатах выдачи поисковых систем, или не хочет предоставить пауку доступ к странице, поскольку он может нарушить ее функционирование. Чтобы избежать подобной ситуации, был разработан robot exclusion protocol. Этот протокол, реализованный в разделе мета-тегов, говорит пауку, чтобы он покинул страницу не индексируя слова на странице и не пытался следовать по ссылкам.

 

Создание Индекса

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

1. Информация, которая хранится в данных

2. Метод, с помощью которого информация индексируется

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

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

Независимо от конкретной комбинации дополнительных кусков информации, хранимой в поисковой системе, данные будут кодированы, чтобы сэкономить дисковое пространство. Например, оригинальный Google документ описывает, используя 2 байта по 8 бит каждый для хранения информации по «весу» — написано ли слово с прописной буквы, его шрифт, размер, положение и другую информацию, которая поможет создать рейтинг. Каждый фактор может занять 2 или 3 бита 2-байтовой группировки (8 бит = 1 байт). Как следствие, получается большой объем информации, которую можно сохранить в очень компактной форме. После того, как информация уплотняется, она готова для индексирования.

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

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

 

Построение Поиска

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

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

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

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

Ваш email не будет опубликован.

*


16 − thirteen =


Поиск Google

Мы Вконтакте

Top
Follow

Get every new post delivered to your Inbox

Join other followers