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

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

Однако практику индексного поиска непросто перенести на отдельный компьютер и даже в корпоративную сеть. В Internet задействуется стандартизованная технология получения информации. Большинство документов в Web применяют формат HTML, который легко преобразуется в текст, используемый впоследствии для составления индекса документа. Кроме того, в HTML определены специальные теги (такие как заголовки, ссылки, картинки), которые также служат для составления индексного файла. В последние несколько лет появилась возможность поиска по сложным форматам (например, DOC или PDF), а также по нетекстовым данным (изображения, звуковые файлы), но при их индексировании анализируются не мультимедийные файлы, а тексты ссылок на них.

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

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

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

Локальный поиск

Когда локальная поисковая система составляет индексный файл, она должна уметь получать информацию о содержимом документов самых разных форматов, причем стандартных для Internet-поиска HTML, PDF и DOC уже недостаточно. Кроме них на локальных дисках часто хранятся документы «1С», архивы почтовых сообщений, мультимедийные библиотеки и т.п., и если локальная поисковая машина не в состоянии проанализировать содержимое всех нужных пользователю типов файлов, ее эффективность становится спорной. В данном случае для индексирования мультимедийной информации практически невозможно применять методы Internet-поиска, поскольку файловая система содержит не развернутое описание сохраненного файла, а только дату его создания, размер и тип. Локальным поисковым машинам приходится честно разбирать форматы графических и текстовых файлов в надежде найти текстовые описания мультимедийной информации. Собственно, чем больше форматов файлов «понимает» локальная поисковая система, тем она ценнее для пользователя (хотя о распознавании содержимого мультимедийных файлов пока речь не идет).

Еще одним отличием локального от Internet-поиска является требование полноты, то есть учета всех соответствующих запросу документов, хранящихся на локальных дисках компьютера или на проиндексированных внешних носителях (компакт-диски, DVD, флэш-память). Поскольку World Wide Web — не полностью связанная система, для поисковых Internet-машин задача полноты не актуальна. А вот при локальном поиске это требование существенно, ведь для пользователя может быть принципиально важным наличие или отсутствие искомого документа. В локальном поиске можно гарантировать полноту, поскольку все данные хранятся в файловой системе, которая полностью прозрачна для поисковой машины и не имеет недоступных документальных кластеров, что возможно в Web. Тем не менее локальной поисковой машине было бы неплохо иметь доступ к разделам «чужих» операционных систем, например для Windows — к разделам Linux и других Unix-подобных операционных систем, установленных на локальном компьютере.

Еще одной проблемой полноты является поиск в коллекциях внешних носителей. Технологии индексации позволяют производить поиск даже по отчуждаемым дискам, но возникает проблема размера индекса, который должен всегда быть доступен для считывания, то есть храниться на локальном диске компьютера. Тем не менее, например, система «Архивариус 3000» предлагает возможность индексирования съемных носителей и сетевых ресурсов.

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

У локальной поисковой машины есть возможности, которые сложно реализовать в Internet-варианте. Например, в Сети практически невозможно реализовать поиск с учетом синонимов, поскольку в объемах Web он будет давать много шума и потребует дополнительных вычислительных ресурсов, что существенно для Internet-проектов. В локальном поиске с более скромными архивами данных вполне возможно учитывать синонимы (в частности, это предлагает поисковая машина SearchInform). Кроме того, в Internet-поисковиках традиционно реализован поиск по отдельным ключевым словам, а не по целой фразе: при индексировании Internet поисковик «не помнит» последовательность слов в документе, которая важна в фразе. Локальный поиск позволяет выполнять более сложный анализ текста перед генерацией индекса, поэтому некоторые производители предлагают поиск в том числе по фразам, что увеличивает его точность. Знание последовательности слов обеспечивает поиск похожих документов, при котором учитываются не только сходство словарного распределения, но и последовательность слов в документе. Обе эти возможности также реализованы в поисковой машине SearchInform.

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

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

Корпоративный поиск

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

Корпоративная поисковая система наследует все признаки локальной, добавляя к ним собственные проблемы, в частности проблему организации доступа. В любой компании есть документы, которые не являются публичными и в результатах открытого поиска появляться не должны, а поисковой машине нужно знать, для кого она готовит выборку документов. К тому же корпоративная поисковая машина должна поддерживать разные протоколы доступа к данным: через сетевые диски или NFS, по протоколу HTTP или протоколам доступа к базам данных. По этой причине корпоративные поисковые машины иногда называют сетевыми. Как правило, у локальных поисковиков есть «старшие братья», которые кроме локальных дисков сканируют еще и сетевые ресурсы (как, к примеру, происходит в DVYGUN Smart Search Enterprise Edition). Однако индексирования сетевых дисков недостаточно для того, чтобы поисковая машина стала корпоративной.

Не стоит путать корпоративные поисковые системы с серверными, которые устанавливаются на Web-серверах или на порталах (в том числе внутренних). Они, как правило, основаны на принципах поисковых машин Internet и предназначены для обслуживания посетителей сайта. Такие машины ограничены набором документов, публикуемых на Web-серверах или в базах данных, но в них нет черновиков и другой необработанной информации, которая может быть полезна другим сотрудникам компании. В то же время сетевую поисковую систему достаточно установить на компьютере, на котором требуется искать информацию, чтобы сделать доступными для поиска все его документы. Так, в системе «Архивариус 3000» есть возможность установки удаленного поискового агента, позволяющего производить поиск на удаленном компьютере.

К сожалению, пока не существует поисковой системы, адекватно решающей проблемы локального, а тем более корпоративного поиска. Отсутствуют системы с поддержкой распределенной системы индексирования, при использовании которой на каждом компьютере должна устанавливаться локальная система индексации, взаимодействующая с другими для организации поиска по всем ресурсам компании. Зато разработано достаточно много локальных поисковиков: Superior Search, SearchInform, «Ищейка», «Архивариус 3000», DVYGUN. Несмотря на большое количество продуктов, рынок локальных и корпоративных поисковых систем еще не сложился — сейчас идет процесс понимания корпоративными пользователями сложности задачи локального и корпоративного поиска.


Системы локального поиска

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

Можно сказать, что наиболее важным параметром любой системы поиска является скорость ее работы, причем это касается как индексации, так и собственно поиска документов. Немаловажные факторы — возможность работы с разными источниками данных, поддерживаемые форматы файлов и дополнительный функционал (поддержка морфологии, синонимов, разных видов поиска). Рассмотрим результаты тестирования ряда программ, которые продемонстрировали вполне приемлемую скорость поиска и обширный функционал. Все они были установлены на компьютере с процессором Athlon/2,2 ГГц, оперативной памятью емкостью 1 Гбайт, IDE-диском Seagate на 160 Гбайт под управлением ОС Windows XP. Для тестирования была создана база документов в форматах DOC, TXT и HTML размером около 20 Гбайт.

dtSearch Desktop

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

Интерфейс dtSearch довольно прост. Единственный неприятный момент состоит в том, что этот интерфейс — исключительно английский, хотя искать документы программа может на нескольких языках. Скорость индексирования документов dtSearch оказалась на должном уровне: программа заняла второе место среди самых быстрых. Тестовую базу удалось проиндексировать за 6 часов 13 минут, и для нужд последующего поиска был создан индекс размером почти 8 Гбайт. Возможности dtSearch — на должном уровне. Обеспечивается поиск во всех морфологических формах слов и поиск с коррекцией ошибок, то есть работа со словами, содержащими синтаксические ошибки (опечатки, «накладки» в документах, полученных при помощи систем распознавания символов и т.п.). Поддерживаются настройки, позволяющие определять степень возможной ошибочности. Предусмотрен поиск с использованием синонимов, но готовый словарь синонимов вместе с dtSearch не поставляется.

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

Google Desktop Search с GDE Enterprise

Бесплатная разработка компании Google предназначена для поиска информации на ПК пользователя, в Internet и корпоративной сети. Однако Google предлагает платные консультации и установку системы GDS Enterprise на предприятии (10 тыс. долл. на 1 тыс. пользователей).

GDS работает в окне браузера, и, соответственно, весь интерфейс настольной версии достался программе от поисковой машины Google. К сожалению для профессионального пользователя и к счастью для неопытного, после установки GDS начинает индексировать на компьютере все подряд, и выбрать пути индексации нельзя. Придется установить отдельную программу TweakGDS, которая позволит указать необходимые для индексации пути. Для работы TweakGDS необходимы .Net Framework и Microsoft Scripting Runtime. Установка и настройка GDE для работы с локальной сетью являются непростым делом даже для квалифицированного системного администратора.

В отношении анализа поисковых запросов и выдачи результатов GDS абсолютно идентична Google для Internet: в ней имеется такая же система отображения результатов, предлагается тот же стандартный набор логических операций для поисковых запросов. Google Desktop Search предназначен исключительно для поиска файлов — нет их внутреннего визуализатора. Число форматов файлов, поддерживаемых программой, является вполне достаточным; возможен поиск и по Web-страницам. Скорость поиска и индексирования вполне приемлема для домашнего применения. С тестовой базой GDS справилась за восемь часов, но размер индексного файла оказался одним из самых маленьких — 4,5 Гбайт.

Преимущество (которое можно считать и недостатком) Google Desktop Search заключается в поддержке дополнительных модулей, однако сначала требуется установить большое количество таких модулей. А чтобы указать программе, какие файлы и папки нужно индексировать, нужно установить дополнительный компонент gdetweak. Без него будет индексироваться вся информация на компьютере пользователя и в корпоративной сети. Сложность полноценной установки компенсируется очень гибкими настройками при использовании в корпоративных сетях. Немаловажным моментом работы GDS в локальной сети является применение групповых политик, что позволяет делать личные настройки для каждого пользователя.

Copernic Desktop Search

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

Изначально Copernic Desktop Search позволяет выбрать для индексирования документы, изображения, видео и музыку. Дополнительно можно настроить индекс так, чтобы, например, не индексировались картинки размером менее 16х16 или менее чем 10-секундные звуковые файлы. Кроме того, программа умеет работать с электронными письмами и контактами из адресной книги Outlook и Outlook Express, индексировать закладки Internet Explorer. Анализ запросов — довольно слабый, но можно выбрать тип файлов и ввести поисковый запрос с атрибутами, присущими именно такому типу файлов. Например, для звуковых файлов это могут быть значения из mp3-тегов (артист, альбом, дата и т.п.), а для изображений можно выбрать их размер.

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

iSYS Desktop

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

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

Программа упрощает установку опций для нового индекса благодаря включению готовых шаблонов для создания индексов по папкам «Мои документы», «Почта», «Почта и документы», «Определенная папка», «Папка с выбором типов файлов» и др. Такие шаблоны упрощают создание индексов на первом этапе организации поиска. ISYS Desktop умеет индексировать данные из разных источников, предоставляет множество гибких настроек и возможностей индексации. Программа создала индекс для тестовой базы за 6 часов 13 минут, сформировав файл размером 7,9 Гбайт.

Включенный в ISYS функционал поиска значительно мощнее обычной поддержки логических операций и находится на одном уровне с функционалом dtSearch. Из «продвинутых» возможностей предлагаются синонимия и фильтры сортировки (по пути, имени и дате создания файла). Также программа позволяет работать со многими операторами, которые способны заменить некоторые виды поиска (например, вместо поиска с синтаксическим разбором использовать специальные символы). Удивляет то, что в программе отсутствует поиск с применением морфологии, но заявлены такие функции, как «приблизительный поиск» и «эвристический анализ». ISYS предоставляет на выбор несколько «визуальных» видов поисковых запросов.

Результаты поиска вполне информативны и отображаются в виде списка документов, отсортированных по релевантности. В отличие, например, от Copernic Desktop Search, в данном случае просмотр результатов возможен лишь в виде плоского текста. Программа позволяет разбивать найденные документы на группы по определенным признакам (по умолчанию они разделены по релевантности). Можно также просматривать уже найденные документы, выбирая отдельные папки (это удобно, когда результат состоит из очень большого числа документов).

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

SearchInform Desktop Professional

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

Интерфейс SearchInform Desktop Professional несколько громоздок — поначалу не так-то просто вспомнить, в каком меню или на какой вкладке находится нужная опция. Процесс создания индекса в SearchInform несложен, да и скорость индексации у продукта выше, чем у других поисковиков. Программа проиндексировала тестовую базу за 3 часа 17 минут, создав индексный файл размером 4,4 Гбайт. Помимо обычных файлов и папок SearchInform поддерживает индексацию электронных писем, подключение и индексацию баз данных и других внешних источников. При индексации можно указать словарь для проведения морфологического поиска.

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

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

Подведем итоги

Программы Google Desktop Search и Copernic Desktop Search вполне подойдут неискушенному пользователю в качестве домашних систем поиска информации. Они неплохо справляются с простыми запросами, обеспечивают достаточную скорость работы и бесплатны. Впрочем, для полноценной работы программу Google нужно оснастить дополнительными модулями, а процесс сетевой настройки затруднителен. Пользователям предлагаются «настольные» версии и более мощных, профессиональных решений dtSearch, iSYS и SearchInform, но не бесплатно. Разработчики таких программ акцентируются преимущественно на корпоративном секторе — их продукты отличает возможность работы с сетью, функциональность, скорость индексации и поиска.

Макс Магляс (max.maglyas@gmail.com) — независимый автор (Москва).