Найти то, что хотят люди: опыт работы с WebCrawler | Брайан Пинкертон

Аннотация

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

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

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




Оглавление

Введение
Дизайн веб-сканера
Поисковая система
Агенты
База данных
Сервер запросов
Результаты поиска WebCrawler
Наблюдения и уроки
Полнотекстовая индексация необходима
Точность является ограничивающим фактором при поиске документов
Поиск в ширину на уровне сервера создает полезный индекс
Роботоподобное поведение необходимо сейчас
Широко распространенный клиентский поиск пока не практичен
Будущая работа
Выводы
Благодарности
Рекомендации
Автор публикации
Электронная почта автора

Введение

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

WebCrawler — это инструмент, который решает проблему обнаружения ресурсов в определенном контексте Всемирной паутины. Он обеспечивает быстрый способ поиска ресурсов, поддерживая индекс в Интернете, который можно запрашивать для документов по определенной теме. Поскольку Интернет постоянно меняется, а индексация выполняется периодически, WebCrawler включает второй поисковый компонент, который автоматически перемещается по Интернету по требованию. WebCrawler лучше всего описать как «веб-робот». Он обращается к Интернету по одному документу за раз, принимая локальные решения о том, как лучше поступить. В отличие от более централизованных подходов к индексированию и обнаружению ресурсов, таких как ALIWEB и Harvest [Koster, Bowman], WebCrawler работает с использованием только инфраструктуры, которая в первую очередь обеспечивает работу Интернета: способность клиентов извлекать документы с серверов.

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

В качестве эксперимента по обнаружению интернет-ресурсов, индекс WebCrawler доступен во всемирной паутине. Индекс охватывает почти 50000 документов, распределенных на более чем 9000 различных серверах, отвечает на более 6000 запросов в день и обновляется еженедельно. Успех этой службы показывает, что обнаружение ресурсов, не связанных с навигацией, является важным и проверяет некоторые варианты выбора, сделанные в WebCrawler. Выделяются три из этих вариантов: индексация на основе контента для обеспечения высококачественного индекса, поиск в ширину для создания широкого индекса и поведение, подобное роботу, для включения максимально возможного числа серверов.

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

Дизайн веб-сканера

Наиболее важной особенностью Всемирной паутины сегодня является ее децентрализованная природа. Любой может добавлять серверы, документы и гипертекстовые ссылки. Для таких инструментов поиска, как WebCrawler, такая динамическая организация означает, что обнаружение новых документов является важной частью разработки. Для самого WebCrawler «обнаружение документов» означает изучение их личности; в Интернете эти идентификаторы в настоящее время принимают форму унифицированных указателей ресурсов (URL). URL-адреса могут относиться практически к любому виду извлекаемых сетевых ресурсов; Когда у WebCrawler есть URL-адрес, он может решить, стоит ли искать документ и извлечь его, если это необходимо.

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

Рисунок 1 Программные компоненты WebCrawler
Рисунок 1 Программные компоненты WebCrawler

WebCrawler имеет программный компонент для каждого из действий, описанных выше; компоненты соединяются вместе, как показано на рисунке 1. В этой архитектуре поисковая система направляет действия WebCrawler. Он отвечает за принятие решения о том, какие новые документы следует изучить, и за инициирование их поиска. База данных обрабатывает постоянное хранение метаданных документа, связей между документами и полнотекстового индекса. «Агенты» несут ответственность за получение документов из сети по указанию поисковой системы. Наконец, Query Server реализует службу запросов, предоставляемую в Интернет. Каждый из этих компонентов подробно описан ниже.




Поисковая система

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

На рисунке 2 показан пример сети в виде графика. Представьте, что WebCrawler уже посетил документ A на сервере 1 и документ E на сервере 3 и теперь решает, какие новые документы следует посетить. Документ A содержит ссылки на документы B, C и E, в то время как документ E содержит ссылки на документы D и F. WebCrawler выберет один из документов B, C или D, чтобы перейти к следующему, основываясь на деталях поиска, который он выполняет.

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

Рисунок 2 Сеть как график
Рисунок 2 Сеть как график

Режим индексирования (Indexing mode): в режиме индексирования цель состоит в том, чтобы создать индекс как можно большей части Интернета. Если в индексе WebCrawler достаточно места для 50 000 документов, то какими это должны быть документы? Для веб-индекса одно из решений заключается в том, что эти документы должны поступать с максимально возможного числа разных серверов. WebCrawler использует следующий подход: он использует модифицированный алгоритм в ширину, чтобы на каждом сервере был хотя бы один документ, представленный в индексе. Стратегия эффективна. Наиболее частые отзывы о WebCrawler — это то, что он имеет большой охват и что представлен почти каждый сервер!

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

Режим поиска в реальном времени (Real-time search mode): В режиме поиска в режиме реального времени, где целью является поиск документов, наиболее похожих на запрос пользователя, WebCrawler использует другой алгоритм поиска. Интуиция в алгоритме заключается в том, что последующие ссылки из документов, похожих на то, что хочет пользователь, с большей вероятностью приведут к соответствующим документам, чем по любой ссылке из любого документа. Эта интуиция примерно отражает то, как люди перемещаются по сети: они находят документ по теме, связанной с тем, что ищут, и переходят по ссылкам оттуда.

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

Одна из проблем этого подхода заключается в том, что WebCrawler слепо следует за ссылками из документов, возможно, ведя его по нерелевантному пути. Например, если WebCrawler ищет страницы о молекулярной биологии, он может натолкнуться на страницу, на которой есть ссылки как на ресурсы молекулярной биологии, так и на не связанные сетевые ресурсы. Когда люди перемещаются, они выбирают ссылки на основе текста привязки, слов, которые описывают ссылку на другой документ и имеют тенденцию следовать по указанному пути к месту назначения. В идеале, WebCrawler должен выбрать одну из нескольких ссылок, предпочитая ту, которая имела больше всего смысла. Хотя умственные способности WebCrawler несколько ниже, чем у человека, у него есть основа для оценки каждой ссылки: сходство текста привязки с запросом пользователя. Чтобы оценить это сходство, WebCrawler создает небольшой полнотекстовый индекс из текста привязки в документе и применяет запрос пользователей для выбора наиболее релевантной ссылки. Поиск текста привязки таким образом работает хорошо, но тексты привязки обычно короткие, а полнотекстовая индексация работает не так хорошо, как могла бы. Более сложные полнотекстовые инструменты очень помогли бы, особенно применение тезауруса для расширения якорного текста.

Идея следовать документам из других, подобных, была впервые продемонстрирована для работы в поиске рыбы [DeBra]. WebCrawler расширяет эту концепцию, чтобы инициировать поиск по индексу и переходить по ссылкам в разумном порядке.

Агенты

Для фактического получения документов из Интернета поисковая система вызывает «агентов». Интерфейс для агента прост: «получить этот URL». Ответ агента поисковой системе — это либо объект, содержащий содержимое документа, либо объяснение того, почему документ не может быть получен. Агент использует библиотеку CERN WWW (libWWW), которая дает ему возможность доступа к нескольким типам контента по нескольким различным протоколам, включая HTTP, FTP и Gopher [Berners-Lee].

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

База данных

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

Полнотекстовый индекс в настоящее время основан на IndexingKit NEXTSTEP [NeXT]. Индекс инвертируется для быстрого выполнения запросов: поиск слова приводит к появлению списка указателей на документы, содержащие это слово. Более сложные запросы обрабатываются путем объединения списков документов для нескольких слов с обычными операциями над множествами. Индекс использует модель векторного пространства для обработки запросов [Salton].

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

Другая часть базы данных хранит данные о документах, ссылках и серверах. Целые URL не сохраняются; вместо этого они разбиваются на объекты, которые описывают сервер и документ. Ссылка в документе — это просто указатель на другой документ. Каждый объект хранится в отдельном дереве на диске; документы в одном, серверы в другом и ссылки в последнем. Разделение данных таким способом позволяет WebCrawler быстро сканировать список серверов, чтобы выбрать неисследованные серверы или сервер, к которому недавно обращались.

Сервер запросов

Сервер запросов реализует Индекс WebCrawler, службу поиска, доступную через документ в Интернете [Pinkerton]. Он охватывает почти 50 000 документов, распределенных по 9 000 различных серверов, и отвечает на более чем 6000 запросов каждый день. Представленная модель запроса представляет собой простую модель запросов векторного пространства в полнотекстовой базе данных, описанной выше. В качестве запроса пользователи вводят ключевые слова, а заголовки и URL-адреса документов, содержащих некоторые или все эти слова, извлекаются из индекса и представляются пользователю в виде упорядоченного списка, отсортированного по релевантности. В этой модели релевантность — это сумма, по всем словам в запросе, продукта веса слова в документе и его веса в запросе, все разделенные на количество слов в запросе. Несмотря на простоту, этот интерфейс является мощным и может легко найти связанные документы. Некоторые примеры вывода запросов показаны ниже на рисунке 3.

Результаты поиска WebCrawler

Результаты поиска по запросу «молекулярно-биологический проект генома человека»: (molecular biology human genome project)

1000 Guide to Molecular Biology Databases
0754 Guide to Molecular Biology Databases
0562 Biology Links
0469 bionet newsgroups
0412 Motif BioInformatics Server
0405 LBL Catalog of Research Abstracts (1993)
0329 Molecular Biology Databases
0324 GenomeNet WWW server
0317 DOE White Paper on Bio-Informatics
0292 Molecular biology
0277 Oxford University Molecular Biology Data Centre Home Page
0262 Biology Internet Connections
0244 Harvard Biological Laboratories — Genome Research
0223 About the GenomeNet
0207 Biology Index

Рисунок 3: Пример результатов WebCrawler. Для краткости показаны только первые 15 из 50 результатов. Цифры в левой части результатов указывают на соответствие документа запросу, нормализованное до 1000 для наиболее релевантного документа. В верхней части списка два документа имеют одинаковое название. На самом деле это два разных документа, с разными URL и разными весами.

Время, необходимое серверу запросов для ответа на запрос, составляет в среднем около одной восьмой секунды. Этот интервал включает в себя время, необходимое для анализа запроса, вызова сервера базы данных, выполнения запроса, получения ответа, форматирования результатов в HTML и возврата их на HTTP-сервер. Из этого времени около половины тратится на выполнение запроса.

Наблюдения и уроки

WebCrawler был активен в сети в течение последних шести месяцев. За это время он проиндексировал тысячи документов и ответил почти на четверть миллиона запросов, выполненных более чем 23 000 различных пользователей. Этот опыт связал меня со многими пользователями и преподал мне ценные уроки. Некоторые из наиболее важных из них приведены здесь. Мои выводы основаны на непосредственном взаимодействии с пользователями, а также на результатах онлайн-опроса пользователей WebCrawler, на который ответили около 500 человек.

Полнотекстовая индексация необходима

Первый урок, который я усвоил, заключается в том, что индексация на основе содержимого необходима и работает очень хорошо. В то время, когда WebCrawler был запущен в Интернете, только RBSE Spider проиндексировал документы по содержимому [Eichmann]. Другие индексы, такие как Jumpstation и WWWW, не индексируют содержимое документов, вместо этого опираясь на заголовок документа внутри документа и привязывая текст за пределами документа [Fletcher, McBryan].

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

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

Точность является ограничивающим фактором при поиске документов

Информационно-поисковые системы обычно измеряются двумя способами: точность и отзыв [Солтон]. Точность измеряет, насколько извлеченные документы соответствуют запросу, в то время как отзыв указывает, какая часть соответствующих документов извлекается запросом. Например, если бы индекс содержал десять документов, пять из которых были о дельфинах, то запрос «тунца, безопасного для дельфинов», который получил четыре документа о дельфинах и двух других, имел бы точность 0,66 и отзыв 0,80.

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

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

Поиск в ширину на уровне сервера создает полезный индекс

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

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

Робото-подобное поведение необходимо сейчас

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

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

Хотя веб-роботы во много раз менее эффективны, чем могли бы быть, создаваемые ими индексы спасают пользователей от следования длинным цепочкам, прежде чем они найдут соответствующий документ, тем самым экономя пропускную способность Интернета. Например, если WebCrawler индексирует 40 000 документов и получает 5000 запросов в день, и если каждый запрос означает, что пользователь получит всего на три документа меньше, чем он имел бы в противном случае, то для инвестиций WebCrawler в пропускную способность потребуется около восьми дней. отомстил.

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

Чтобы помочь роботам избежать индексации бесполезных или неразборчивых документов, Мартин Костер предложил стандарт, который поможет роботам выбирать документы [Koster2]. Администраторы сервера могут посоветовать роботам, указав, какие документы стоит индексировать в специальном документе «robots.txt» на своем сервере. Такой совет полезен для веб-роботов и повышает качество их индексов. Фактически, некоторые администраторы зашли так далеко, что создали специальные обзорные страницы для веб-роботов, которые можно было бы извлекать и включать.

Широко распространенный клиентский поиск пока не практичен

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

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

Будущая работа

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

Во-вторых, я изучаю возможности включения более мощного полнотекстового движка в WebCrawler. Несколько новых функций желательны; Двумя наиболее важными являются поиск по близости, расширение и уточнение запросов с помощью тезауруса. Поиск по близости позволяет рассматривать несколько слов как фразу, а не как независимые ключевые слова. Использование тезауруса — это один из способов помочь в коротких и широких запросах: запрос биологии может найти много документов, содержащих слово «биология», но при расширении тезаурусом для включения большего количества терминов о биологии запрос будет более точно распознавать документы о биологии. Наконец, я планирую поработать с группой Harvest, чтобы посмотреть, сможет ли WebCrawler вписаться в их систему в качестве брокера [Bowman].

Выводы

WebCrawler — полезный инструмент веб-поиска. Это не накладывает чрезмерного бремени на отдельные серверы при построении индекса. Фактически, частое использование его индекса тысячами людей экономит пропускную способность Интернета. Компонент поиска в реальном времени WebCrawler эффективен для быстрого поиска релевантных документов, но у него есть вышеупомянутая проблема неадекватного масштабирования, учитывая ограниченную пропускную способность Интернета.

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

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

Благодарности

Я хотел бы поблагодарить Дэна Уэлда (Dan Weld) за его поддержку и много проницательных дискуссий. Я также хотел бы поблагодарить тысячи пользователей WebCrawler в Интернете: они предоставили неоценимую обратную связь и смирились со многими проблемами на сервере. Я благодарен Тэду Пинкертону (Tad Pinkerton) и Реи Томбропулос (Rhea Tombropoulos) за помощь в редактировании.

Рекомендации

[Bowman] Bowman, C. M. et al. The Harvest Information Discovery and Access System. Second International World-Wide Web Conference, Chicago, 1994.

[Berners-Lee] Berners-Lee, T., Groff, J., Frystyk, H. Status of the World-Wide Web Library of Common Code

[DeBra] DeBra, P. and Post, R. Information Retrieval in the World-Wide Web: Making Client-based searching feasible, Proceedings of the First International World-Wide Web Conference, R. Cailliau, O. Nierstrasz, M. Ruggier (eds.), Geneva, 1994.

[Fletcher] Fletcher, J. The Jumpstation.

[McBryan] McBryan, O. GENVL and WWWW: Tools for Taming the Web, Proceedings of the First International World-Wide Web Conference, R. Cailliau, O. Nierstrasz, M. Ruggier (eds.), Geneva, 1994.

[Koster2] Koster, M. Guidelines for Robot Writers.

[NeXT] NeXT Computer, Inc. NEXTSTEP General Reference, Volume 2. Addison-Wesley, 1992.

[Pinkerton] Pinkerton, C. B. The WebCrawler Index

[Salton] Salton, G. Automatic Text Processing: The Transformation, Analysis, and Retrieval of Information by Computer, Addison Wesley, 1989.

Автор публикации

Брайан Пинкертон (Brian Pinkerton) — доктор философии, студент факультета компьютерных наук и инженерии Вашингтонского университета в Сиэтле. Он является автором и оператором популярного поискового инструмента в Интернете. Его профессиональные интересы включают обнаружение информации о сети, поиск информации и применение компьютерных наук в молекулярной биологии. Недавно он вернулся из четырехлетнего отпуска, в течение которого он работал инженером-программистом в NeXT Computer.

Brian Pinkerton

Электронная почта автора

bp@cs.washington.edu

Дата выхода публикации

Октябрь 1994 года

Документ оказал влияние на публикацию от основателей поисковой системы Google: Анатомия крупномасштабного гипертекстового поискового движка | Сергей Брин, Лоуренс Пейдж

Поделись записью