Индексирование и поиск PDF-коллекций в Windows
Научите Windows ХР или 2000 поиску полного текста документа в формате PDF наряду с другими или используйте Adobe Reader.
Поиск — это суть использования архива документов. Поиск может найти даже такие вещи, которые вы, возможно, и не думали просматривать. Проблема состоит в том, что функция поиска по умолчанию в Windows не знает, как читать PDF-файлы. Предлагаем несколько решений.
Поиск PDF-документов с помощью Adobe Reader
Свободно распространяемая программа Adobe Reader 6.0 обеспечивает самое простое решение. Она предоставляет возможность выполнять поиск полной PDF-коллекции командой меню Edit\Search (Правка\Поиск). Результаты поиска включают ссылки к индивидуальным PDF-страницам и отрывки текста, соответствующие вашему запросу, как показано на рисунке. Опция Fast Find (Быстрый поиск), установленная по умолчанию, кэширует результаты поиска, поэтому последующие поиски идут намного быстрее. Просмотрите или измените параметры поиска программы Adobe Reader, открыв командой меню Edit (Правка) диалоговое окно Preferences (Параметры настройки) и выбрав в списке пункт Search (Поиск).
Недостатком Adobe Reader является поиск документов только в формате PDF.
Индексирование и поиск документов в формате PDF с помощью Windows ХР и 2000
С помощью общего интерфейса можно выполнять поиск среди всех типов файлов. Более новые версии Windows дают возможность расширить встроенную функцию поиска и включить в нее PDF-документы. Все, что нужно сделать в Windows 2000: установить свободно распространяемый фильтр PDF IFilter от Adobe. В Windows ХР также потребуется произвести несколько дополнительных настроек. В обоих случаях можно использовать Windows Indexing Service (Служба индексации Windows) для ускорения поиска.
Программа Windows Indexing Service достаточно мощная, требует конфигурирования. Следующий раздел представляет Windows Indexing Service. Затем мы обсудим установку и улаживание конфликтов с PDF Adobe IFilter.
Windows Indexing Service: установка, конфигурирование и документация
Для выполнения поиска на компьютере не требуется Indexing Service (Служба индексации), но она может быть полезна. С ее помощью запросы выполняются намного быстрее, и можно использовать функции расширенного поиска: логические операторы (И, ИЛИ и НЕ), поиск метаданных (например, @DocTitle Contains «pdf») и сравнение с образцом. Программа всегда выполняется в фоновом режиме, используя ресурсы для индексирования новых или модифицированных документов. Небольшое конфигурирование гарантирует улучшение ее работы.
Имеется ли у вас Indexing Service (Служба индексации)? Если нет, то как ее установить? На оба вопроса в Windows отвечает окно Components Wizard (Мастер компонентов). В Windows ХР или 2000 откройте этот мастер командой меню Start\Settings\Control Panel\Add or Remove Programs (Пуск\Настройки\Панель управления\Добавить или удалить программы) и щелкните на кнопке Add/Remove Windows Components (Добавить/Удалить компоненты Windows) слева. Найдите компонент Indexing Service и выделите его. Нажмите кнопку Next (Дальше) для продолжения работы мастера.
Получите доступ к конфигурированию Indexing Service (Служба индексации) и документации к ней из окна Computer Management (Управление компьютером), показанного на рисунке. Щелкните правой кнопкой мыши на значке My Computer (Мой компьютер) и выберите Manage (Управление). В левой области окна разверните каталоги Services (Службы), Applications (Приложения), а затем Indexing Service (Служба индексации).
Для остановки или запуска Indexing Service щелкните правой кнопкой мыши по ее узлу и выберите Stop (Остановка) или Start (Пуск) из контекстного меню.
В узле Indexing Service находится каталог System (Система). Сконфигурируйте его так, чтобы индексировались только нужные подкаталоги. Чтобы правильно произвести конфигурацию Indexing Service, необходимо ознакомиться с документацией, которую можно открыть командой меню Help\Help Topics\Indexing Service (Справка\Темы справки\Служба индексации). В этом документе описан также расширенный язык запросов.
Настроить Indexing Service (Служба индексации) можно также с помощью входов системного реестра, расположенных в ключе HKEY LOCAL MACHINE\SYSTEM\Current ControlSet\Control\ContentIndex. Они описаны на вебстранице http://msdn.microsoft.com/ library/default.asp?url=/libraty/en-us/indexsrv/html/ixrefreg_192r.asp.
Поиск неиндексированных каталогов можно производить и командой меню Start\Search\For Files or Folders (Пуск\Поиск\Файлы или папки), так что нет необходимости в индексировании всего компьютера.
Перед установкой программы PDF IFilter создайте специальный каталог для тестирования и поместите в него несколько PDF-документов. Отключите индексацию на всех других каталогах, дважды щелкая кнопкой мыши на них и выбирая в контекстном меню пункт Include in Index. No (Включить в индекс? Нет). Это упростит тестирование, т. к. индексация большого количества документов может занять много времени.
Загрузите тест индексации PDF-документов с сайта http://www.pdfhacks.com/ifilter/. Во время тестирования выполните поиск в этом PDF-документе слова guidelines (рекомендации).
Подготовка к установке PDF IFilter 5.0
В Windows ХР и 2000 имеются два вида поиска: индексированный и неиндексированный. Индексированный поиск производится с помощью Indexing Service (Служба индексации). Неиндексированный поиск применяет метод «в лоб», сканируя все файлы на наличие запрашиваемого текста. В обоих случаях система использует фильтры, чтобы обрабатывать многочисленные типы файлов. Фильтры связаны с системой интерфейсом IFilter API.
Программа PDF IFilter от Adobe находится в свободном доступе. Посетите веб-страницу http://www.adobe.com/support/salesdocsl/1043a.htm и загрузите файл ifilter50.exe. На веб-странице Adobe сказано, что эта программа работает только на серверах, но фактически она работает и в Windows ХР Home Edition.
Программа PDF IFilter, установленная в Windows 2000, работает для индексированного и неиндексированного поиска документов в формате PDF.
При использовании Windows ХР Home Edition с PDF IFilter (версия 5.0), возможно, придется отключить его для неиндексированного поиска PDF-документов, т. к. он может оставлять дескрипторы открытых файлов, вызывающие различные проблемы. Посетите веб-страницу http://www.pdfhacks.com/ifilter/ и загрузите файл PDFFilt_ FileHandle LeakFix.reg. Он используется в командах установки этого метода взлома системного реестра, гарантирующего, что только Indexing Service (Служба индексации) использует PDF IFilter. Этот метод позволяет обрабатывать PDF-документы подобно файлам открытого текста во время неиндексированного поиска. Отменить этот метод взлома системного реестра можно с помощью файла PDFFilt_FileHandleLeakFix.uninstall.reg.
Неиндексированный поиск PDF-документов в Windows ХР с помощью PDF IFilter может оставлять дескрипторы открытых файлов.
Если вы выполняете неиндексированный поиск в папке PDF-документов, а затем обнаруживаете, что не можете переместить или удалить эти документы, то вы имеете дескрипторы открытых файлов. Перезагрузите Windows, чтобы закрыть их.
Загрузите программу Process Explorer с сайта http://www.sysinternals.com и запустите файл explorer.exe, показывающий эти дескрипторы. Используйте наш метод взлома системного реестра PDFFilt_FileHandle LeakFix.reg, как будет описано ниже.
Установка и настройка Adobe PDF IFilter 5.0
В Windows ХР инсталляция PDF IFilter может потребовать выполнения нескольких взломов системного реестра. Сначала мы установим программу, а затем будем устранять конфликты.
- Откройте диалоговое окно Computer Management (Управление компьютером), щелкнув правой кнопкой мыши на значке My Computer (Мой компьютер) и выбрав в контекстном меню Manage (Управление). Откройте в левой части окна каталог Services and Applications (Службы и приложения), щелкните правой кнопкой мыши на значке Indexing Service (Служба индексации) и выберите в контекстном меню Stop (Остановить).
- Запустите установку Adobe PDF IFilter.
- Пользователи Windows ХР Home Edition должны запустить файл PDFFilt_FileHandleLeakFix.reg, дважды щелкнув по нему и выбрав Yes (Да), чтобы подтвердить установку. (Если вы хотите отменить взлом системного реестра, выполните файл PDFFilt_FileHandleLeakFix.uninstall.reg.)
- Запустите Indexing Service (Служба индексации) снова: откройте в левой части окна каталог Services and Applications (Службы и приложения), щелкните правой кнопкой мыши на значке Indexing Service и выберите в контекстном меню Start (Пуск).
- Просканируйте тестовый каталог: выберите узел Directories (Каталоги), щелкните правой кнопкой мыши на каталоге и выберите в контекстном меню All Tasks\Rescan\Full (Все задачи\Повторное сканирование\Полное).
- Дождитесь завершения сканирования.
Следите за выполнением Indexing Service (Служба индексации), выбрав пункты Services and Applications\ Indexing Service (Службы и приложения\Служба индексации) в диалоговом окне Computer Management (Управление компьютером). Наблюдайте за правой областью окна. Индексирование каталога будет завершено, когда значение Docs to Index (Документы для индексирования) станет равным нулю.
Если PDF-документ открыт в Acrobat, он не будет индексирован. Убедитесь, что тестовый документ закрыт.
Чтобы протестировать индекс, не пользуйтесь командой Start\Search (Пуск\Поиск). Вместо этого в окне Computer Management (Управление компьютером) выберите узел Query Catalog (Запрос каталога), находящийся в вашем тестовом каталоге. Выполните несколько запросов, которые работали бы только с полным текстом PDF-документов. Не используйте заголовки документа или названия. Это работает? Если так, то все в порядке! Если вы не получите никаких результатов, то изучите следующий раздел, поясняющий общий подход для Windows ХР.
PDF IFilter не работает при использовании Indexing Service (Служба индексации) Windows ХР.
PDF IFilter и Indexing Service не видят друг друга в Windows ХР. Если запросы индексированных PDF-документов возвращают пустые результаты, попробуйте проделать следующее:
- Откройте диалоговое окно Computer Management (Управление компьютером), щелкнув правой кнопкой мыши на значке My Computer (Мой компьютер) и выбрав в контекстном меню Manage (Управление). Откройте в левой части окна каталог Services and Applications (Службы и приложения), щелкните правой кнопкой мыши на значке Indexing Service (Служба индексации) и выберите в контекстном меню Stop (Остановить).
- Командой Start\Run (Пуск\Выполнить) откройте Registry Editor (Редактор системного реестра), введя в поле regedit. Нажмите ОК.
- Выберите ключ HKEY_CLASSES_ROOT, а затем найдите файл pdffilt.dll в данных системного реестра: командой меню Edit\Find (Правка\Искать) откройте диалоговое окно, в поле Find what: (Искать [что]) введите pdffilt.dll, выберите опции Look at: Data (Искать в: Данные) и Find Next (Искать дальше).
- Найдите ключ InprocServer32, который ссылается на файл pdffilt.dll и определяет его ThreadingModel. Дважды щелкните кнопкой мыши на ThreadingModel и измените значение с Apartment на Both.
- Выберите ключ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl Set\Control\ContentIndex и дважды щелкните кнопкой мыши на ключе DLLsToRegister, чтобы отредактировать его.
- В списке DLLs удалите следующую строку: C:\Program Files\Adobe\PDFIFilter 5.0\PDFFilt.dll
- Нажмите OK, а затем закройте редактор системного реестра.
- Запустите Indexing Service (Служба индексации) снова: откройте в левой части окна каталог Services and Applications (Службы и приложения), щелкните правой кнопкой мыши на значке Indexing Service и выберите в контекстном меню Start (Пуск).
- Повторно просканируйте тестовый каталог: выберите узел Directories (Каталоги), щелкните правой кнопкой мыши на каталоге и выберите в контекстном меню All Tasks\Rescan\ Full (Все задачи\Повторное сканирование\Полное).
- Дождитесь завершения повторного сканирования.
Тестовый запрос теперь должен работать, как показано на рисунке.
Этот подход описан на веб-странице сайта Adobe http://www. adobe. com/support/techdocs/333ae.htm.
Использование последовательности действий Start\Search\For Files and Folders (Пуск\Поиск\Файлов и папок)
При поиске PDF-документов с помощью команды меню Start\Search\For Files and Folders (Пуск\Поиск\Файлы и папки) ищите All Files and Folders (Все файлы и папки), а не Documents (Документы), т. к. режим поиска документов пропускает документы в формате PDF.
Если вы индексировали определенную папку вместо полного диска, то эту папку (или одну из ее подпапок) нужно указать в поле Look In (Искать в) при использовании последовательности действий Start\Search\For Files and Folders. В противном случае индекс не будет приниматься во внимание. Вместо этого будет выполнен неиндексированный поиск даже в пределах индексированной папки. Укажите в поле Look In определенную папку, выбрав ее в раскрывающемся списке Browse (Просмотреть), как показано на рисунке.
При поиске в пределах индексированной папки можно использовать условия расширенного поиска (например, @DocTitle Contains «earning»). Для получения дополнительной информации просмотрите сетевую документацию к Indexing Service (Служба индексации), упоминавшуюся ранее.
Поиск PDF-документов с использованием служебных программ Windows 98 и Windows NT
Использование поисковых средств старших версий Windows для поиска PDF-документов могут быть полезны, даже если это не относится к полному тексту вашего документа. Если PDF-документы не зашифрованы, то их метаданные (Title [Заголовок], Author [Автор] и т. д.) и закладки выглядят для средства поиска как открытый текст, как и заголовки PDF-ярлыков.