Сделай Сам Свою Работу на 5

Как работает поисковая машина





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

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

Аналогично, поисковая машина состоит из двух частей: так называемого робота (или паука), который обходит серверы Сети и формирует базу данных поискового механизма.

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



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

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

Эту мысль наглядно иллюстрирует рис. 4. Эллипс 1 ограничивает множество всех Web-документов, существующих на некоторый момент времени, эллипс 2 - все документы, которые проиндексированы данной поисковой машиной, а эллипс 3 - искомые документы. Таким образом, найти с помощью данной поисковой машины можно лишь ту часть искомых документов, которые ею проиндексированы.



Рис. 4. Схема, поясняющая возможности поиска

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

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

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

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

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



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

Рис. 5. Роботы-пауки просматривают информационное наполнение Web-страниц и создают базу, на основе которой производится поиск

При нахождении очередной HTML-страницы большинство поисковых систем фиксируют слова, картинки, ссылки и другие элементы (в разных поисковых системах по-разному), содержащиеся на ней. Причем при отслеживании слов на странице фиксируется не только их наличие, но и местоположение, т.е. где эти слова находятся: в заголовке (title), подзаголовках (subtitles), в метатэгах (meta tags) или в других местах. При этом обычно фиксируются значимые слова, а союзы и междометия типа "а", "но" и "или" игнорируются. Метатэги позволяют владельцам страниц определить ключевые слова и тематику, по которым индексируется страница. Это может быть актуально в случае, когда ключевые слова имеют несколько значений. Метатэги могут сориентировать поисковую систему при выборе из нескольких значений слова на единственно правильное. Однако метатэги работают надежно только в том случае, когда заполняются честными владельцами сайта. Недобросовестные владельцы Web-сайтов помещают в свои метатэги наиболее популярные в Сети слова, не имеющие ничего общего с темой сайта. В результате посетители попадают на незапрашиваемые сайты, повышая тем самым их рейтинг. Именно поэтому многие современные поисковики либо игнорируют метатэги, либо считают их дополнительными по отношению к тексту страницы. Каждый робот поддерживает свой список ресурсов, наказанных за недобросовестную рекламу.

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

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

Поиск по индексу

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

Наиболее часто используемые булевы операторы:

· AND - все термины, соединенные "AND", должны присутствовать в предлагаемом документе. Большинство поисковых систем используют значок "+" вместо "AND";

· OR - как минимум одно из ключевых слов, соединенных "OR", должно присутствовать в искомом документе;

· NOT - ключевое слово (слова), следующее за "NOT", не должно появляться в искомом документе. Некоторые поисковые системы используют значок "-" вместо "NOT";

· FOLLOWED BY - одно из ключевых слов должно следовать непосредственно за другим;

· NEAR - одно из слов должно отстоять на определенное количество слов от другого;

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

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

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

Таблица 1. Синтаксис языка запросов при строгом поиске
интаксис Что означает оператор Пример запроса
Пробел или & Логическое И (в пределах предложения) Лечебная физкультура
&& Логическое И (в пределах документа) Рецепты && (плавленый сыр)
| Логическое ИЛИ Фото | фотография | снимок | фотоизображение
+ Обязательное наличие слова в найденном документе (работает также в применении к стоп- словам) +Быть или +не быть
() Группирование слов (Технология | изготовление) (сыра | творога)
~ Оператор И НЕ (в пределах предложения) Банки ~ закон
~~или~ Оператор И НЕ (в пределах документа) Путеводитель по Парижу ~~ (агентство | тур)
/(n m) Расстояние в словах (~ назад +вперед) Поставщики /2 кофе музыкальное /(-2 4) образование вакансии ~/+1 студентов
<< << Поиск фразы <<Красная шапочка>> (эквивалентно красная /+1 шапочка)
&&/(n m) Расстояние в предложениях (-назад +вперед) Банк && /1 налоги

Многие поисковые системы имеют режим "расширенный поиск". Например, в наиболее популярной на сегодня поисковой системе Google (www.google.com) этот режим дает возможность искать документы на определенном языке, измененные в определенное время или представленные в определенном формате, например Word-документ или презентацию Power Point.

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

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

Метапоисковые системы

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

Метапоисковая система имеет те же преимущества перед поисковой системой, что и поиск в нескольких справочниках перед поиском в одном (рис. 6).

Рис. 6. Метапоисковая система имеет те же преимущества перед поисковой системой, что и поиск в нескольких справочниках перед поиском в одном

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

В качестве примера метапоисковой системы можно привести программу "ДИСКо Искатель" (Разработка фирмы "ДИСКо" www.disco.ru). Главной особенностью этой программы является возможность запоминать как параметры поиска, так и его результаты и впоследствии использовать их.

Следует отметить, что существуют онлайновые сервисы метапоиска по отдельным товарам. Например, на сайте www.booksearch.ru можно осуществить метапоиск по 12 наиболее популярным книжным Интернет-магазинам. Это позволяет найти редкие книги, которые есть не во всех магазинах.

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.