`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Сыскное агентство Windows

0 
 

Сегодня невозможно представить себе "виртуальную" жизнь без поисковых машин. В Internet действительно есть все, но попробуй отыщи. Однако, привычно копируя с таким трудом найденные материалы на жесткий диск своего ПК, мы и его постепенно превращаем в свалку документов. Как же не утонуть в этом море информации?
Насколько эта тема актуальна? Естественно, каждому -- свое. Все зависит от назначения и характера использования ПК. Если он -- всего лишь дорогая игрушка, то вряд ли описанные в данной статье проблемы озаботят пользователя. Если же ведется хоть какая-то "реальная" работа, то рано или поздно накопится изрядная библиотека: справочная информация, всевозможная документация, собственные "шедевры". У меня, к примеру, она относительно невелика -- около 1000 файлов суммарным объемом в 100 MB (PDF, DOC, реже -- в других форматах). Однако рубрикация (раскладывание по папкам) уже не слишком помогает. Без применения специальных средств и методик поиск нужного материала может отнять несколько минут и так и не увенчаться успехом (особенно с учетом того, что многие популярные форматы -- бинарные, т. е. обычный текст в них не "виден").

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

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


Indexing Service

Действительно, все пользователи Windows 2000 и Windows XP (а раз так, то и всех последующих версий, поскольку линия 9x прервалась окончательно) автоматически получают в свое распоряжение довольно мощное поисковое средство -- Indexing Service. Появившись еще во времена Windows NT 4 под именем Index Server (распространялся в составе Option Pack), продукт превратился в стандартный компонент Windows 2000. Он по умолчанию устанавливается в систему, однако остается неактивным, и его даже можно преспокойно удалить через Control Panel, что и рекомендуют сделать многие онлайновые руководства по оптимизации Windows.

Сыскное агентство Windows
Регулируя параметры производительности Indexing Service, службу можно сделать практически незаметной либо "тонко" настроить в зависимости от характера использования системы
Сыскное агентство Windows
Принцип работы службы следует из ее названия -- она индексирует содержимое жесткого диска, и поиск информации осуществляет опосредованно. Тем не менее о некоторых особенностях ее функционирования знать весьма полезно.

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

Службой Indexing Service можно довольно гибко управлять. Соответствующий апплет находится в Control Panel -> Administrative Tools -> Computer Management. Однако для более подробного знакомства и изучения гораздо удобнее вынести на Рабочий стол ярлык для ciadv.msc из \WINDOWS\ system32, а заодно -- и для is.chm из \WINDOWS\Help.

В основе функционирования Indexing Service лежит понятие каталога, представляющего собой совокупность реальных папок, для которых операцию индексирования можно разрешать или, наоборот, запрещать. Прямой смысл -- максимально ограничить поисковую зону. Если все полезные данные вынесены на отдельный диск, его стоит указать "целиком", а затем исключить лишние папки. Это позволит оперативнее строить запросы. Чтобы изменения вступили в силу, службу необходимо остановить и запустить вновь. Кроме того, можно принудительно инициировать операцию повторной индексации -- полную или инкрементную.

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

Но, пожалуй, интереснее всего то, как Indexing Service добывает из файлов полезную информацию. Для этого используются так называемые фильтры. Microsoft предоставляет только относительно небольшой их набор -- для текстовых файлов (в том числе и с различной разметкой, например HTML) и документов Microsoft Office (сам пакет при этом не нужен). Фильтры не только извлекают из соответствующих файлов весь текст, но и выделяют так называемые "свойства" (или метаданные) -- имя автора, название, ключевые слова, содержимое и т. д. Естественно, магии здесь никакой нет -- все атрибуты должны заполняться автором документа (при условии, что формат поддерживает эту возможность).

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

@docAuthor=Igor*

или

prop name=DocAuthorregexIgor*/regex/prop

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

Сыскное агентство Windows
В MMC-апплете Indexing Service у каждого каталога имеется специальная форма для построения запросов и выполнения поиска
Упомянутые фильтры представляют собой подключаемые модули, а в составе Microsoft Platform SDK распространяются необходимые инструменты и документация для их разработки. Соответственно, другие компании могут достаточно просто реализовать поддержку своих собственных форматов, чем некоторые и не преминули воспользоваться.

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

Нюансов действительно хватает (и описанных в документации, и таких, которым разумного объяснения найти не удалось), так что поначалу даже было сомнение в том, что фильтр правильно установился в систему. Проверить это можно в реестре. В частности, ключ HKLM\ SYSTEM\Current ControlSet\Control\ContentIndex\ DLLsToRegister должен содержать название используемой библиотеки, в данном случае -- PDFFilt.dll. Привязку к расширениям имен файлов найти несколько сложнее, поэтому удобно воспользоваться утилитой FILTREG все из того же Microsoft Platform SDK (получить ее отдельно невозможно, только -- в составе пакета в несколько сот мегабайт).

Еще одна интересная разработка -- фильтр для документов в формате DjVu. В свое время эта технология обещала совершить чуть ли не революцию. Но со временем шумиха утихла: многое из доступного ПО датируется "до 2000 г.", разделы сайтов -- "under construction". Тем не менее кое-где DjVu используется, и иметь в своем арсенале соответствующий фильтр было бы полезно. К сожалению, это -- коммерческий продукт, ориентированный исключительно на корпоративное применение, что прежде всего следует из цены. Вряд ли кто-то решится потратить $2500 на организацию собственной электронной библиотеки.

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

Сыскное агентство Windows
Благодаря использованию Indexing Service программа AimAtSite всегда помнит, где вы были и что читали
Существуют и более экзотические фильтры: для чертежей AutoCAD, для MP3-файлов, для документов WordPerfect от Corel. Сама Microsoft дополнительно разрабатывает фильтр для XML, основная ценность которого заключается в поддержке метаданных (без этого поиск в XML-документах осуществляется как в обычных текстовых файлах). А Document Imaging из состава Microsoft Office XP позволяет индексировать сканированные TIF-страницы, "на лету" выполняя распознавание.

К сожалению, все это -- крохи по сравнению с тем, что хотелось бы иметь на самом деле. По идее, фильтры нужны абсолютно для всех форматов, получивших достаточно широкое распространение. А таких на самом деле немало: DVI (из системы TeX, правда, вытесняемый в последнее время PDF), всевозможные e-книги, документы "альтернативных" офисных пакетов (пока все не перешли на XML) и пр. Парадоксально, но нет фильтра даже для файлов справочной системы Windows (HLP и CHM)!

Пожалуй, последнее замечание, которое необходимо сделать, касается поддерживаемых языков. Поскольку "родной" кодировкой для Windows 2000/XP является Unicode, сама Indexing Service в полном смысле языконезависима, стало быть ограничения могут накладываться только фильтрами сторонних разработчиков. Тем не менее кое-какая лингвистическая информация все же используется, в частности -- списки так называемых "шумовых" (т. е. служебных, вспомогательных, не несущих информационной нагрузки) слов, не подлежащих индексированию. На первый взгляд это не кажется таким уж важным, однако словарь для немецкого языка составляет, к примеру, почти 150 KB. В реестре (HKLM\SYSTEM\ CurrentControlSet\Control\ ContentIndex\Language) можно найти данные и для нескольких других языков; поддержка русского и украинского отсутствует даже в локализованных версиях Windows.

Дополнительный плюс в копилку Indexing Service -- возможность использования этой службы в сторонних продуктах. Интерфейс ее открыт и подробно документирован -- хватило бы фантазии у разработчиков. В качестве неплохого примера стоит познакомиться с программой AimAtSite, которая организует индексацию просматриваемых в Internet Explorer Web-страниц и осуществляет поиск в History и Favorites.

Таким образом, Indexing Service представляет собой действительно серьезный поисковый инструмент -- продуманный, эффективный, универсальный, поддержанный не только Microsoft, но и другими компаниями. Состязаться с ним совсем не просто. Тем интереснее будет посмотреть на аналогичные сторонние разработки (обзор их в настоящее время готовится к публикации), авторы которых должны предлагать нечто действительно оригинальное. И многим это действительно удается.
0 
 

Напечатать Отправить другу

Читайте также

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT