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

Carder

Professional
Messages
2,619
Reputation
7
Reaction score
1,653
Points
113
search-engine-ch.gif

Лучшая поисковая система будет индексировать сотни миллионов страниц в день.

Хорошие новости об Интернете и его наиболее заметном компоненте, World Wide Web, заключаются в том, что доступны сотни миллионов страниц, которые ждут, чтобы представить информацию по удивительному разнообразию тем. Плохая новость об Интернете заключается в том, что доступны сотни миллионов страниц, большинство из которых названы в соответствии с прихотью их автора, и почти все они находятся на серверах с загадочными именами. Когда вам нужно узнать о конкретном предмете, как узнать, какие страницы читать? Если вы похожи на большинство людей, вы заходите в поисковую систему в Интернете.

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

Веб-сканирование​

search-engine-chart.gif

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

Когда большинство людей говорят о поисковых машинах в Интернете, они на самом деле имеют в виду поисковые системы World Wide Web. До того, как Интернет стал наиболее заметной частью Интернета, уже существовали поисковые машины, помогающие людям находить информацию в сети. Программы с такими именами, как «gopher» и «Archie», хранят индексы файлов, хранящихся на серверах, подключенных к Интернету, и значительно сокращают время, необходимое для поиска программ и документов. В конце 1980-х годов получение серьезной выгоды от Интернета означало уметь пользоваться сусликом, Арчи, Вероникой и другими.
Сегодня большинство пользователей Интернета ограничивают свои поиски в Интернете, поэтому мы ограничим эту статью поисковыми системами, которые сосредоточены на содержании веб-страниц.
Прежде чем поисковая система сможет сказать вам, где находится файл или документ, его необходимо найти. Чтобы найти информацию на сотнях миллионов существующих веб-страниц, поисковая машина использует специальных программных роботов, называемых пауками , для построения списков слов, найденных на веб-сайтах. Когда паук составляет свои списки, этот процесс называется веб-сканированием . (Есть некоторые недостатки в названии части Интернета Всемирной паутиной - одним из них является большой набор ориентированных на паукообразных имен инструментов.) Чтобы создать и поддерживать полезный список слов, пауки поисковой системы имеют посмотреть много страниц.
Как какой-нибудь паук начинает свое путешествие по сети? Обычно отправной точкой являются списки часто используемых серверов и очень популярных страниц. Паук начнет с популярного сайта, индексируя слова на своих страницах и переходя по каждой ссылке, найденной на сайте. Таким образом, система пауков быстро начинает перемещаться, распространяясь по наиболее широко используемым частям Интернета.
Google начинался как академическая поисковая система. В статье, описывающей, как была построена система, Сергей Брин и Лоуренс Пейдж приводят пример того, как быстро могут работать их пауки. Они построили свою первоначальную систему для использования нескольких пауков, обычно трех одновременно. Каждый паук мог одновременно поддерживать около 300 подключений к веб-страницам. При максимальной производительности с использованием четырех пауков их система могла сканировать более 100 страниц в секунду, генерируя около 600 килобайт данных каждую секунду.
Чтобы все работало быстро, нужно было создать систему для передачи необходимой информации паукам. В ранней системе Google был сервер, предназначенный для предоставления URL-адресов паукам. Вместо того, чтобы зависеть от интернет-провайдера для сервера доменных имен (DNS), который переводит имя сервера в адрес, у Google был свой собственный DNS, чтобы свести задержки к минимуму.

Когда паук Google просматривал HTML- страницу, он обращал внимание на две вещи:
  • Слова на странице
  • Где были найдены слова
Слова, встречающиеся в заголовке, субтитрах, метатегах и других позициях относительной важности, были отмечены для особого рассмотрения во время последующего поиска пользователем. Паук Google был создан для индексации каждого значимого слова на странице, исключая статьи «a», «an» и «the». Другие пауки используют другие подходы.
Эти разные подходы обычно пытаются заставить паука работать быстрее, позволить пользователям искать более эффективно или и то, и другое. Например, некоторые пауки будут отслеживать слова в заголовке, подзаголовках и ссылках, а также 100 наиболее часто используемых слов на странице и каждое слово в первых 20 строках текста. Сообщается, что Lycos использует этот подход для работы в Интернете.
Другие системы, такие как AltaVista, идут в другом направлении, индексируя каждое слово на странице, включая «a», «an», «the» и другие «незначительные» слова. Стремление к полноте в этом подходе сочетается с другими системами в том, что внимание уделяется невидимой части веб-страницы, метатегам. Узнайте больше о метатегах дальше.

Мета-теги​

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

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

Как только пауки завершили задачу поиска информации на веб-страницах (и мы должны отметить, что это задача, которая на самом деле никогда не завершается - постоянно меняющаяся природа сети означает, что пауки всегда ползают), поисковая машина должна хранить информацию таким образом, чтобы она была полезной. Есть два ключевых компонента, которые делают собранные данные доступными для пользователей:
  • Информация, сохраненная с данными
  • Метод, с помощью которого индексируется информация
В простейшем случае поисковая система может просто сохранить слово и URL-адрес, по которому оно было найдено. На самом деле это сделало бы механизм ограниченного использования, поскольку не было бы способа определить, было ли слово использовано на странице важным или тривиальным образом, использовалось ли слово один или несколько раз или страница содержит ссылки на другие страницы, содержащие это слово. Другими словами, не было бы никакого способа построить список ранжирования, который пытается представить наиболее полезные страницы вверху списка результатов поиска.
Чтобы получить более полезные результаты, большинство поисковых систем хранят больше, чем просто слово и URL. Механизм может хранить количество раз, когда слово появляется на странице. Механизм может назначать вес каждой записи с увеличением значений, назначаемых словам, по мере их появления в верхней части документа, в подзаголовках, в ссылках, в метатегах или в заголовке страницы. У каждой коммерческой поисковой системы есть своя формула для присвоения веса словам в своем индексе. Это одна из причин, по которой поиск одного и того же слова в разных поисковых системах дает разные списки со страницами, представленными в разном порядке.
Независимо от точной комбинации дополнительных фрагментов информации, хранящихся в поисковой системе, данные будут закодированы для экономии места для хранения. Например, в исходном документе Google описывается использование 2 байтов по 8 бит каждый для хранения информации о взвешивании - написано ли слово с заглавной буквы, размер шрифта, положение и другая информация, помогающая ранжировать попадание. Каждый фактор может занимать 2 или 3 бита в 2-байтовой группе (8 бит = 1 байт). В результате большой объем информации можно хранить в очень компактной форме. После сжатия информация готова к индексации.
Индекс имеет единственную цель: он позволяет как можно быстрее находить информацию. Существует несколько способов построения индекса, но один из наиболее эффективных - это создание хеш-таблицы. При хешировании применяется формула для присвоения числового значения каждому слову. Формула предназначена для равномерного распределения записей по заранее определенному количеству подразделений. Это числовое распределение отличается от распределения слов по алфавиту, и это ключ к эффективности хеш-таблицы.
В английском языке одни буквы начинаются со многих слов, а другие - с меньшего. Вы обнаружите, например, что раздел «M» в словаре намного толще, чем раздел «X». Это неравенство означает, что поиск слова, начинающегося с очень «популярной» буквы, может занять гораздо больше времени, чем поиск слова, начинающегося с менее популярной. Хеширование выравнивает разницу и сокращает среднее время, необходимое для поиска записи. Он также отделяет индекс от фактической записи. Хеш-таблица содержит хешированное число вместе с указателем на фактические данные, которые можно сортировать любым способом, позволяющим их хранить наиболее эффективно. Комбинация эффективной индексации и эффективного хранения позволяет быстро получать результаты, даже когда пользователь создает сложный поиск.

Создание поиска​

При поиске по индексу пользователь создает запрос и отправляет его через поисковую систему. Запрос может быть довольно простым, минимум одним словом. Построение более сложного запроса требует использования логических операторов, которые позволяют уточнить и расширить условия поиска.
Наиболее часто встречающиеся логические операторы:
  • И - Все термины, соединенные оператором «И», должны появляться на страницах или в документах. Некоторые поисковые системы заменяют слово AND оператором "+".
  • ИЛИ - На страницах или в документах должен появиться хотя бы один из терминов, соединенных «ИЛИ».
  • НЕ - термин или термины после «НЕ» не должны появляться на страницах или в документах. Некоторые поисковые системы заменяют слово NOT оператором "-".
  • СЛЕДУЕТ - одно из условий должно сразу следовать за другим.
  • РЯДОМ - одно из терминов должно находиться в пределах указанного количества слов другого.
  • Кавычки - слова в кавычках рассматриваются как фраза, и эта фраза должна быть найдена в документе или файле.

В поисках спорта
Поисковые системы стали такой неотъемлемой частью нашей жизни, что, по крайней мере, одна организованная игра развивалась вокруг этого инструмента. В Googlewhacking вы вводите два слова в поисковую систему Google в надежде получить ровно один результат - одну веб-страницу, на которой появляются оба этих слова. Это настоящий удар.
Это довольно сложная задача - вам нужно выбрать два совершенно не связанных между собой слова, иначе вы получите намного больше, чем один результат, но со многими совершенно несвязанными словами вы получите нулевой результат.
Если вы добьетесь чистого удара, вы можете отправить его на www.googlewhack.com, где он будет размещен в The Whack Stack (вместе с вашим именем или как вы хотите себя называть) для всеобщего обозрения. Один чистый удар в настоящее время в The Whack Stack - это «двуличные мошенники».

Будущий поиск​

Поиск, определяемый логическими операторами, является буквальным поиском - механизм ищет слова или фразы точно в том виде, в каком они введены. Это может быть проблемой, если введенные слова имеют несколько значений. «Кровать», например, может быть местом для сна, местом посадки цветов, местом хранения грузовика или местом, где рыба откладывает икру. Если вас интересует только одно из этих значений, возможно, вам не захочется видеть страницы со всеми остальными. Вы можете создать буквальный поиск, который пытается устранить нежелательные значения, но хорошо, если сама поисковая система может помочь.
Одно из направлений исследований поисковых систем - поиск на основе концепций. Некоторые из этих исследований включают использование статистического анализа страниц, содержащих слова или фразы, которые вы ищете, чтобы найти другие страницы, которые могут вас заинтересовать. Очевидно, что информация, хранящаяся о каждой странице, больше для поисковой системы, основанной на концепциях, и для каждого поиска требуется гораздо больше обработки. Тем не менее, многие группы работают над улучшением как результатов, так и производительности этого типа поисковой системы. Другие перешли в другую область исследований, называемую запросами на естественном языке.
Идея запросов на естественном языке состоит в том, что вы можете ввести вопрос так же, как если бы вы задали его человеку, сидящему рядом с вами - нет необходимости отслеживать логические операторы или сложные структуры запросов. Самым популярным сайтом запросов на естественном языке сегодня является AskJeeves.com, который анализирует запрос по ключевым словам, который затем применяет к индексу сайтов, которые он создал. Он работает только с простыми запросами; но конкуренция за разработку механизма запросов на естественном языке, способного принимать запросы большой сложности, велика.
 
Top