Многие из нас пользуются поисковыми системами, такими как Google, Яндекс, Yahoo и др., однако, все ли понимают, как работает механизм поисковика? Несмотря на то, что каждый из поисковиков имеет свои особенности в алгоритмах поиска и ранжирования результатов, принципы работы всех поисковых систем общие.

Если рассматривать процесс поиска информации в сети, его можно разбить на следующие этапы: сбор информации со страниц сайтов в сети Интернет, индексация сайтов, поиск по запросу и ранжирование результатов. Рассмотрим каждый из этапов отдельно.

Сбор данных

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

Важно, чтобы общение вашего сайта с ботом было приятным для обеих сторон. В ваших интересах, чтобы бот долго не задерживался на сайте, чтобы не грузить лишний раз сервер, и в то же время необходимо, чтобы он правильно собрал все данные со всех нужных страниц. В интересах робота также сделать сбор быстрым, чтобы приступить к обработке следующего сайта в таблице расписаний. Для этого вам необходимо убедиться, что сайт доступен, что нет проблем с навигацией по сайту (flash и javascript меню роботы ещё плохо распознают), что отсутствуют битые страницы (отдающие 404 ошибку), не заставлять бота ходить по страницам, которые доступны только зарегистрированным пользователям и так далее. Также следует помнить, что для web-пауков существует ограничение на глубину проникновения (уровень вложенности) и максимальный размер сканируемого текста (обычно 256кб).

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

Полезная ссылка: О поисковом роботе
http://ru.wikipedia.org/wiki/Поисковый_робот

Индексация

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

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

Можно также почитать: Как работают поисковые системы
http://download.yandex.ru/company/iworld-3.pdf
Инвертированный файл
http://wiki.liveinternet.ru/IR/InvertirovannyjjFajjl

Поиск информации

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

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

similatiry(Q,D) = SUM (w qk *w dk),

где similatiry(Q,D) — схожесть запроса Q документу D ;
w qk — вес k-го слова в запросе;
w dk — вес k-го слова в документе.

Документы, наиболее схожие с запросом, попадают в результаты поиска.

Полезный материал: AUTOMATIC TEXT ANALYSIS
http://www.dcs.gla.ac.uk/Keith/Chapter.2/Ch.2.html
Обьяснение алгоритма Яндекса от Миныча
http://www.minich.ru/business/seo/

Ранжирование

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

  • вес страницы ( , );
  • авторитетность домена;
  • релевантность текста запросу;
  • релевантность текстов внешних ссылок запросу;
  • а также множество других факторов ранжирования .

Существует упрощенная формула ранжирования, которую можно найти в некоторых статьях оптимизаторов:

Rа(x)=(m*Tа(x)+p*Lа(x))* F(PRa) ,

где:
Rа(x) – итоговое соответствие документа а запросу x ,
Tа(x) – релевантность текста (кода) документа а запросу x ,
Lа(x) – релевантность текста ссылок с других документов на документ а запросу x ,
PRа – показатель авторитетности страницы а , константа относительно х ,
F(PRa) – монотонно неубывающая функция, причем F(0)=1 , можно допустить, что F(PRa) = (1+q*PRа) ,
m , p , q – некие коэффициенты.

То есть, мы должны знать, что при ранжировании документов используются, как внутренние факторы, так и внешние. А также можно их разделить на зависимые от запроса факторы (релевантность текста документа или ссылок) и независимые от запроса. Конечно же, эта формула даёт очень общее представление об алгоритмах ранжирования документов в результатах поиска.

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

Полезные ссылки про ранжирование: РОМИП 2004
http://company.yandex.ru/articles/romip2004.xml
Алгоритм текстового ранжирования Яндекса на РОМИП-2006
http://download.yandex.ru/company/03_yandex.pdf
Основные факторы, влияющие на релевантность

Первой компьютерной программой для поиска в Интернете стала Арчи, созданная в 1990 году студентами из Монреаля. Она скачивала списки всех файлов со всех доступных FTP-серверов и строила базу данных, в которой можно было выполнять поиск по именам файлов. Первой полнотекстовой поисковой системой стала «WebCrawler», запущенная в 1994 году и индексирующая ресурсы при помощи робота. Она позволяла пользователям искать по любым словам, расположенным на любой веб-странице. В 1998 году Ларри Пейдж и Сергей Брин создали поисковую систему Google на основе своего проекта BackRub. Их новаторством стало внедрение собственного алгоритма PageRank, ранжирующего веб-страницы на основании количества гиперссылок на них. Поиск с учётом русской морфологии был впервые реализован в 96 году на поисковой машине Altavista, тогда же были запущены Рамблер и Апорт. А в сентябре 97 года была открыта поисковая машина Яндекс. Как же работает поисковая система — об этом в сегодняшнем выпуске.

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


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

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


Большинство поисковых систем использует методы ранжирования и машинное обучение, чтобы выводить в начало списка «лучшие» результаты.

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


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

Поисковая система - это программно-аппаратный комплекс, предназначенный для осуществления поиска в сети Интернет и реагирующий на запрос пользователя, задаваемый в виде текстовой фразы (поискового запроса), выдачей списка ссылок на источники информации, в порядке релевантности (в соответствии запросу). Наиболее крупные международные поисковые системы: «Google» , «Yahoo» , «MSN» . В русском Интернете это – «Яндекс» , «Рамблер» , «Апорт» .

Опишем основные характеристики поисковых систем:

    Полнота

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

    Точность

Точность - еще одна основная характеристика поисковой машины, которая определяется степенью соответствия найденных документов запросу пользователя. Например, если по запросу «как выбрать автомобиль» находится 100 документов, в 50 из них содержится словосочетание «как выбрать автомобиль», а в остальных просто наличествуют эти слова («как правильно выбрать магнитолу и установить в автомобиль»), то точность поиска считается равной 50/100 (=0,5). Чем точнее поиск, тем быстрее пользователь найдет нужные ему документы, тем меньше различного рода «мусора» среди них будет встречаться, тем реже найденные документы не будут соответствовать запросу.

    Актуальность

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

    Скорость поиска

Скорость поиска тесно связана с его устойчивостью к нагрузкам. Например, по данным ООО «Рамблер Интернет Холдинг», на сегодняшний день в рабочие часы к поисковой машине Рамблер приходит около 60 запросов в секунду. Такая загруженность требует сокращения времени обработки отдельного запроса. Здесь интересы пользователя и поисковой системы совпадают: посетитель желает получить результаты как можно быстрее, а поисковая машина должна отрабатывать запрос максимально оперативно, чтобы не тормозить вычисление следующих запросов.

    Наглядность

Наглядность представления результатов является важным компонентом удобного поиска. По большинству запросов поисковая машина находит сотни, а то и тысячи документов. Вследствие нечеткости составления запросов или неточности поиска, даже первые страницы выдачи не всегда содержат только нужную информацию. Это означает, что пользователю зачастую приходится производить свой собственный поиск внутри найденного списка. Различные элементы страницы выдачи поисковой системы помогают ориентироваться в результатах поиска.одробные пояснения по странице результатов поиска, например у «Яндекса» можно посмотреть по ссылке http://help.yandex.ru/search/?id=481937 .

4. Краткая история развития поисковых систем

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

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

Каталоги ссылок широко использовались ранее, однако практически полностью утратили свою популярность в настоящее время. Так как даже современные, огромные по своему объему каталоги, содержат информацию лишь о ничтожно малой части сети Интернет. Самый большой каталог сети DMOZ (его еще называют Open Directory Project) содержит информацию о 5 миллионах ресурсов, тогда как база поисковой системы Google состоит из более чем 8 миллиардов документов.

Первой полноценной поисковой системой стал проект WebCrawler, вышедший в свет в 1994 году.

В 1995 году появились поисковые системы Lycos и AltaVista. Последняя долгие годы была лидером в области поиска информации в сети Интернет.

В 1997 году Сергей Брин и Ларри Пейдж создали поисковую машину Google в рамках исследовательского проекта в Стэндфордском университете. В настоящий момент Google - самая популярная поисковая система в мире!

В сентябре 1997 года была официально анонсирована поисковая система Yandex, являющаяся самой популярной в русскоязычном Интернете.

В настоящее время существуют три основные международные поисковые системы – Google, Yahoo и MSN, имеющих собственные базы и алгоритмы поиска. Большинство остальных поисковых систем (коих насчитывается большое количество) использует в том или ином виде результаты трех перечисленных. Например, поиск AOL (search.aol.com) использует базу Google, а AltaVista, Lycos и AllTheWeb – базу Yahoo.

5. Состав и принципы работы поисковой системы

В России основной поисковой системой является «Яндекс», далее - Rambler.ru, Google.ru, Aport.ru, Mail.ru. Причем, на данный момент, Mail.ru использует механизм и базу поиска «Яндекса».

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

Модуль индексирования

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

Spider (паук) – программа, предназначенная для скачивания веб-страниц. «Паук» обеспечивает скачивание страницы и извлекает все внутренние ссылки с этой страницы. Скачивается html-код каждой страницы. Для скачивания страниц роботы используют протоколы HTTP. Работает «паук» следующим образом. Робот на сервер передает запрос “get/path/document” и некоторые другие команды HTTP-запроса. В ответ робот получает текстовый поток, содержащий служебную информацию и непосредственно сам документ.

    URL страницы

    дата, когда страница была скачана

    http-заголовок ответа сервера

    тело страницы (html-код)

Crawler («путешествующий» паук) – программа, которая автоматически проходит по всем ссылкам, найденным на странице. Выделяет все ссылки, присутствующие на странице. Его задача - определить, куда дальше должен идти паук, основываясь на ссылках или исходя из заранее заданного списка адресов. Crawler, следуя по найденным ссылкам, осуществляет поиск новых документов, еще неизвестных поисковой системе.

Indexer (робот- индексатор) - программа, которая анализирует веб-страницы, скаченные пауками. Индексатор разбирает страницу на составные части и анализирует их, применяя собственные лексические и морфологические алгоритмы. Анализу подвергаются различные элементы страницы, такие как текст, заголовки, ссылки структурные и стилевые особенности, специальные служебные html-теги и т.д.

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

База данных

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

Поисковый сервер

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

Поисковый сервер работает следующим образом:

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

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

    В зависимости от выбора пользователя этот рейтинг может быть скорректирован дополнительными условиями (например, так называемый «расширенный поиск»).

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

    Полученные результаты поиска передаются пользователю в виде SERP (Search Engine Result Page) – страницы выдачи поисковых результатов.

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

Ни одна поисковая система не охватывает все ресурсы Интернет.

Каждая поисковая система собирает сведения о ресурсах Интернет, применяя свои уникальные методы, и формирует собственную периодически обновляемую базу данных. Доступ к этой базе предоставляется пользователю.

Поисковые системы реализуют два способа поиска ресурса:

    Поиск по тематическим каталогам - информация представляется в виде иерархической структуры. На верхнем уровне - общие категории (“Интернет”, “Бизнес”, “Искусство”, “Образование” и т.д.), на следующем уровне категории делятся на разделы и т.д. Самый нижний уровень - ссылки на конкретные веб-страницы или другие информационные ресурсы.

    Поиск по ключевым словам (индексный поиск или детальный) - пользователь отправляет поисковой системе запрос , состоящий из ключевых слов. Система возвращает пользователю перечень найденных по запросу ресурсов.

Большинство поисковых систем сочетают оба способа поиска.

Поисковые системы могут быть локальными, глобальными, региональными и специализированными.

В русской части Интернет (Рунет) наиболее популярны сейчас поисковые системы общего назначения Rambler (www.rambler.ru), Яндекс (www.yandex.ru), Апорт (www.aport.ru), Гугл (www.google.ru).

Большинство поисковых систем реализовано в виде порталов.

Портал (от англ. portal - главный вход, ворота) -это веб-сайт, который интегрирует различные сервисы Интернет: средства поиска, почту, новости, словари и т.д.

Порталы могут быть специализированными (как, www . museum . ru ) и общими (например, www . km . ru ).

Поиск по ключевым словам

Набор ключевых слов, по которым ведется поиск, называют также критерием поиска или темой поиска.

Запрос может состоять как из одного слова, так и из сочетания слов, объединенных операторами - символами, по которым система определяет, какое действие ей нужно произвести. Например: запрос “Москва Питер” содержит оператор И (так воспринимается пробел), который указывает, что надо искать документы, в которых есть оба слова - и Москва, и Питер.

Для того, чтобы поиск был релевантным (от англ. relevant -уместный, относящийся к делу), следует учитывать несколько общих правил:

    Независимо от того, в какой форме употреблено слово в запросе, поиск учитывает все его словоформы по правилам русского языка. Например, по запросу “билет” будут найдены и слова “билетом”, “билету” и т.д.

    Заглавные буквы следует использовать только в именах собственных, чтобы не просматривать лишние ссылки. По запросу “кузнецов”, например, будут найдены документы, где говорится и о кузнецах, и о Кузнецовых.

    Желательно сужать круг поиска, используя несколько ключевых слов.

    Если нужного адреса нет среди первой двадцатки найденных адресов, следует изменить запрос.

Каждая поисковая система использует свой язык запросов. Для знакомства с ним, пользуйтесь встроенной справкой поисковой системы

Крупные сайты могут иметь встроенные системы поиска информации в пределах своих веб-страниц.

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

Расширенный поиск

Поисковые системы могут предоставлять в распоряжение пользователя механизм, позволяющий формировать сложный запрос. Переход по ссылке Расширенный поиск дает возможность редактировать параметры поиска, указывать дополнительные параметры и выбирать наиболее удобную форму показа результатов поиска. Ниже описаны параметры, которые могут быть заданы при расширенном поиске в системах Япс1ех и Rambler.

Описание параметра

Название в Яндекс

Название в Rambler

Где искать ключевые слова (заголовок документа, основной текст и т.д.)

Словарный фильтр

Поиск по тексту...

Какие слова должны или не должны присутствовать в документе и насколько точным должно быть совпадение

Словарный фильтр

Искать слова запроса... Исключить документы, содержащие следующие слова...

На каком расстоянии друг от друга должны располагаться ключевые слова

Словарный фильтр

Расстояние между словами запроса...

Ограничение на дату документа

Дата документа...

Ограничение поиска пределами одного или нескольких сайтов

Сайт/Вершина

Искать документы только на следующих сайтах...

Ограничение поиска по языку документа

Язык документа...

Поиск документов, содержащих картинку с определенным именем или подписью

Изображение

Поиск страниц, содержащих объекты

Специальные объекты

Форма представления результатов поиска

Формат выдачи

Вывод результатов поиска

Некоторые поисковые системы (например, Яндекс) позволяют вводить запросы на естественном языке. Вы пишите, что нужно найти (например: заказ билетов на поезд из Москвы в Питер). Система анализирует запрос и выдает результат. Если он Вас не устраивает, переходите на язык запросов.

Поисковая система или просто “поисковик” – это , осуществляющая поиск интернет страниц в соответствии с запросом пользователя. Самая известная поисковая система в мире - это Google, самая популярная в России – Яндекс, а одной из самых старых поисковых систем является Yahoo. В архитектуре поисковой системы можно выделить поисковую машину – ядро системы, представленное набором программных модулей; базу данных или индекс , хранящую информацию обо всех известных поисковой системе интернет ресурсах; и набор сайтов, являющих собой точки входа пользователей в систему (www.google.com, www.yandex.ru, ru.yahoo.com, и т.д.). Все это соответствует классической трехуровневой архитектуре информационных систем: есть пользовательский интерфейс, бизнес логика, которая в данном случае представлена реализацией алгоритмов поиска и база данных.

Специфика поиска в интернете

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

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

Второе отличие, как одно из следствий первого – это то, что запрос представляется не в виде набора значений параметров (критериев поиска), а в виде текста, написанного человеком на естественном для него языке. Таким образом, перед тем, как начать поиск нужно еще понять, чего именно хочет автор запроса. Замечу, понять не другому человеку, а вычислительной машине.

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

И в заключении следует добавить, что область поиска – это миллиарды страниц, по несколько килобайт и более каждая. Около десятка миллионов страниц добавляется ежедневно и столько же обновляется. Все это представлено различными цифровыми форматами. К сожалению, даже современные технологии и ресурсы, имеющиеся в распоряжении лидеров рынка поисковых услуг в интернете не позволяют им обрабатывать все это многообразие “на лету” и в полной объеме.

Из чего состоит поисковая машина

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

Теперь кратко о том, из чего состоит поисковая машина:

  • Паук или спайдер (spider). Приложение, которое занимается скачиванием страниц интернет ресурсов. Никуда паук не “заползает” – он лишь запрашивает содержимое страниц точно так же, как это делает обычный интернет браузер, отправляя на сервер HTTP запрос и получая от него ответ. После того, как содержимое страницы скачано, оно отправляется индексатору и краулеру, о которых рассказывается далее.

  • Индексатор (indexer). Индексатор производит первоначальный анализ содержимого скачанной страницы, выделяет основные части (название страницы, описание, ссылки, заголовки и т.д.) и раскладывает все это по разделам поисковой базы данных – помещает в индекс поисковой системы. Этот процесс называют индексацией интернет ресурсов , отсюда и название самой подсистемы. На основе результатов первоначального анализа индексатор также может принять решение, что страница вообще “недостойна” находиться в индексе. Причины такого решение могут быть разными: страница не имеет названия, является точной копией другой, уже имеющейся в индексе страницы или содержит ссылки на запрещенные законодательством ресурсы.

  • Краулер (crawler). Это “животное” призвано “ползать” по ссылкам, имеющимся на скачанной пауком странице. Краулер анализирует пути, ведущие с текущей страницы на другие разделы сайта, или на страницы внешних интернет ресурсов и определяет дальнейший порядок обхода пауком нитей всемирной паутины. Именно краулер находит новые для поисковой машины страницы и передает их пауку. Работа краулера построена на базе алгоритмов поиска на графах в ширину и глубину.

  • Подсистема обработки и выдачи результатов (Search Engine and Results Engine). Самая важная часть любой поисковой машины. Алгоритмы работы этой подсистемы компании разработчики хранят в строгой секретности, поскольку они являют собой коммерческую тайну. Именно эта часть поисковой машины отвечает за адекватность ответа поисковой системы на запрос пользователя. Здесь можно выделить два основных компонента:
    • Подсистема ранжирования. Ранжирование – это страниц интернет сайтов в соответствии с их релевантностью определенному запросу. Релевантность страницы – это, в свою очередь, степень соответствия содержания страницы смыслу запроса, и эту величину поисковая машина определяет самостоятельно, исходя из огромного количества параметров. Ранжирование – эта самая загадочная и спорная часть “искусственного интеллекта” поисковой машины. На ранжирование страницы, помимо ее структуры и содержимого (контента) также влияют: количество и качество ссылок, ведущих на данную страницу с других сайтов; возраст домена самого сайта; характер поведения пользователей, просматривающих страницу и многие другие факторы.

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

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

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

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

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

Общие принципы работы поисковой системы

Нужно понимать, что услуги поиска в интернете – это очень и очень выгодный бизнес. В детали, за счет чего живут такие компании, как Google и Яндекс можно не вдаваться, поскольку основная часть их прибыли – это доходы от контекстной рекламы. А раз поиск в интернете является крайне выгодным делом, то и конкуренция среди таких компаний весьма серьезная. Что определяет конкурентоспособность на рынке интернет поиска? Ответ – качество выдачи поисковой системы. Логично, что чем оно выше, тем больше у системы появляется новых пользователей, и тем ценнее размещаемая на страницах этой самой выдачи контекстная реклама. Разработчики поисковых систем затрачивают большие усилия, направленные на то, чтобы “очистить” результаты своей поисковой выдачи от разного рода информационного мусора, называемого в народе спамом (spam). Более подробно о том, как это делается, будет рассказано в отдельной статье, а здесь я приведу общие принципы поведения поисковой системы, сформулированные в виде выводов по всему вышесказанному.

  1. Поисковая машина в лице своих пауков и краулеров постоянно сканирует интернет на предмет появления новых и обновления существующих страниц, поскольку неактуальная информация ценится ниже.

  2. Поисковая машина периодически обновляет ранжирование ресурсов по их релевантности ключевым запросам, поскольку в индексе постоянно появляются новые страницы. Этот процесс называют обновлением (update) поисковой выдачи.

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

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

  5. На релевантность конкретной страницы влияют не только внутренние ее параметры (структура, содержание), но и внешние параметры, такие как ссылки на страницу с других сайтов и поведение пользователя при ее просмотре.

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