Новая служба Indexing Service работает так. После инсталляции Indexing Service находит системный каталог и строит свои каталоги, которые содержат индексы элементов файловой системы и информацию об их свойствах. Программа периодически запускается для обновления каталогов. Каждый раз, когда пользователь выполняет поиск в каталогах, поисковый механизм задействует эти индексы.
По умолчанию Indexing Service создает системный каталог (System catalog), который содержит индексы всех файлов на локальных дисках, за исключением временных файлов и файлов изменений (temporary Internet and history files). Если на данном сервере работает Microsoft IIS, то Indexing Service также создает каталог Web и индексирует папки, которые показаны в Таблице 1.
Специалисты Microsoft рекомендуют на время работы Indexing Service выключать сканирование вирусов. Поэтому, возможно, придется использовать вирусный сканер, настроенный на работу по расписанию, чтобы он отключался, когда выполняется процесс индексирования.
Indexing Service использует механизмы фильтрации для чтения и обработки информации из файлов и других подсистем. Indexing Service включает в себя фильтры для MIME сообщений, Microsoft Office, HTML и открытых текстовых файлов. Можно также разработать и установить собственные фильтры.
В процессе инсталляции Windows 2000 служба Indexing Service устанавливается автоматически (флажок Indexing Service установлен по умолчанию). Для управления данной службой используется утилита Computer Management или оснастка (snap-in) Indexing Service консоли Microsoft Management Console (MMC). Для запуска Indexing Service выбирается меню Start\Programs\Administrative Tools\Computer Management. В папке Services and Applications нужно щелкнуть правой кнопкой на папке Indexing Service и выбрать Start. После запуска Indexing Service будет сканировать систему и готовить каталог по умолчанию. Этот процесс требует времени, так как данная служба сканирует и читает файлы; при этом жесткий диск или диски в системе испытывают сильную нагрузку.
После завершения процесса индексирования пользователи могут задействовать один из нескольких интерфейсов и методов поиска объектов. Когда возможно, функция поиска из меню Start будет использовать индексные каталоги. Пользователи также могут задействовать Web-форму или пользовательское приложение для выполнения запросов. Для приложения разработчику просто нужно добавить запрос, который сможет обработать Indexing Service. Для выполнения запроса администратор может использовать страницу Query the Catalog в MMC для любого индекса в папке Indexing Service. Пользовательское приложение может точно указать конкретный каталог для запроса.
Создание каталогов
Модули snap-in в MMC можно применить для создания каталогов. Пользовательские каталоги нужны в тех случаях, когда необходимо создать индекс, который представляет подмножество или надмножество файлов или данных. Предположим, необходимо создать каталог всех инженерных документов организации, связанных с разработкой. Требуется только сформировать новый каталог и настроить его для индексирования того каталога, который содержит относящиеся к разработке документы.
При создании каталога необходимо указать его имя и папку, где он будет храниться. Сохранить эту папку можно на любом локальном диске. Чтобы не возникло путаницы, для этой папки следует использовать имя, которое указывало бы на ее содержание. На Рисунке 1 показана папка IndexingServiceCatalogs, которую я использую для хранения каталогов.
Для создания каталога нужно щелкнуть правой кнопкой мыши на папке Indexing Service в Computer Management, выбрать New Catalog, ввести имя каталога, выбрать папку для каталога, затем остановить и перезапустить службу. Последний шаг необходим, потому что программа добавляет каталог только после рестарта службы.
После создания каталога добавляют подкаталоги или другие объекты, поиск по которым будут выполнять пользователи. Можно динамически добавлять подкаталоги каталога во время работы службы. Для добавления подкаталога в каталог следует щелкнуть правой кнопкой мыши на папке каталога и выбрать New, Directory из контекстного меню. Затем нужно задать путь до директории или ввести UNC-имя и нажать OK. Если каталог, к которому идет обращение, требует авторизации, то необходимо ввести имя пользователя и пароль. Indexing Service поддерживает и использует систему безопасности Windows 2000, поэтому данная служба не будет регистрировать в своем файле результатов отсутствие у пользователя прав доступа.
После добавления подкаталога Indexing Service индексирует его. NTFS использует для файлов атрибут Update Sequence Number Changed, который дает службе возможность проверять только измененные файлы.
Можно индексировать и Web-файлы. Для установки индексирования Web следует щелкнуть правой кнопкой на каталоге, в который надо добавить Web-индексирование, выбрать Properties. В диалоговом окне Properties нужно указать на закладку Tracking, затем из списка WWW Server выбрать Web-сервер, который требуется проиндексировать. На На Рисунке 2 показано, что из списка WWW Server выбран сервер Default Web Site. После выбора Web-сервера следует нажать OK и перезапустить Indexing Service. После этого служба начнет «подключать» элементы Web-узла, как показано на Рисунке 3 . Видно, что каталог KensDocs содержит папку My Documents, и служба подключает все виртуальные каталоги с сервера Default Web Site. Не размещайте каталог поиска для Web-сервера в корневом каталоге Web сервера (Web root) или в виртуальном каталоге, потому что IIS может заблокировать каталог и помешать обновлению.
Службу индексирования можно использовать и для формирования аннотаций документов. Если выполнить поиск, например по http://www.microsoft.com, в результате будет создана аннотация. Каждый документ в списке результатов содержит краткое описание. Чтобы Indexing Service начала генерировать аннотацию, нужно открыть диалоговое окно Properties для данного каталога, выбрать закладку Generation, затем выбрать опцию Generate Abstracts. По умолчанию максимальный размер аннотации составляет 320 символов. Можно изменить эту величину в поле Maximum size на вкладке Generation. По умолчанию каждый каталог наследует свои свойства от Indexing Service. Для установки конкретных свойств нужно снять для данного каталога флажок Inherit above settings from Service на вкладке Generation.
С помощью модуля Indexing Service в MMC каталоги можно и удалять. Чтобы удалить каталог, следует остановить Indexing Service, выбрать каталог, нажать кнопку Delete и перезапустить службу.
В MMC можно также проводить поиск по каталогу. Откройте закладку Query the Catalog и введите запрос. Эта функция производит тестирование и ищет объекты в каталоге, пока идет работа с каталогом. При попытке послать запрос к каталогу до запуска Indexing Service будет выведено сообщение об ошибке - Service is not running.
Индексирование файлов
Одним важным, но оставшимся без внимания аспектом использования службы индексирования является индексирование свойств файла. Для индексирования какого-нибудь документа Indexing Service просматривает свойства файла, и для их корректного чтения создатель файла или тот, кто работает с ним, должен заполнить свойства этого документа. Для добавления свойств в офисный документ пользуются диалоговым окном Properties из меню File. Для того чтобы диалоговое окно автоматически появлялось при сохранении нового документа, следует выбрать в Microsoft Word меню Tools, затем Options, закладку Save, и установить флажок Prompt for document properties. Местоположение данной настройки различно для разных офисных приложений.
Для Web-файлов, пользователь, создающий файл, должен обеспечить соответствующие метатеги (meta tag), чтобы служба индексирования могла правильно собрать данные. Indexing Service использует несколько метатегов, показанных в Таблице 2., которые соответствуют свойствам файлов. При желании можно поискать в Internet узлы, которые предоставляют информацию об HTML meta tag.
Разработка приложений.
Разработчики программного обеспечения могут создавать приложения, которые по-разному взаимодействуют с Indexing Service. Можно написать фильтрующие приложения (filter applications) или же создать приложения, которые используют возможности данной службы по обработке запросов. Такие приложения обеспечивают простой интерфейс, с помощью которого пользователи могут выполнять поиск непосредственно из приложения.
Техническая документация Microsoft Developer Network (MSDN) предоставляет информацию о разработке приложений для Indexing Service. В главе Programming for Indexing Service раздела MSDN Platform SDK показано, как реализовать задачи службы Indexing Service на разных языках программирования.
Indexing Service -- полезный инструмент, обеспечивающий доступ к различным типам документов. Интеграционная способность данной службы позволяет добавлять поисковые возможности в любое приложение. Разработчики Microsoft сделали данную службу в Windows 2000 более простой в применении, включив ее в стандартную комплектацию и интегрировав со службой поиска и файловой системой.
Кен Спенсер - работает в учебном центре 32X Tech, который проводит семинары для профессионалов по предлагаемым корпорацией Microsoft технологиям разработки и SQL Server. Кен является автором и соавтором ряда книг, включая "OLE Remote Automation with Visual Basic”, "Client/Server Programming with Microsoft Visual Basic” и "Inside Visual InterDev”, выпущенных издательством Microsoft Press. С ним можно связаться по адресу: kenspencer@32x.com