Обработчики фильтров, которые поставляются с Windows
Корпорация Майкрософт предоставляет несколько стандартных фильтров с помощью поиска Windows. Клиенты вызывают эти обработчики фильтров (которые являются реализацией интерфейса IFilter) для извлечения текста и свойств из документа.
Этот раздел организован следующим образом:
Заметки о реализации поиска Windows
В Windows 7 и более поздних версиях фильтры, написанные в управляемом коде, явно блокируются. Фильтры должны быть записаны в машинном коде из-за потенциальных проблем с управлением версиями СРЕДЫ CLR в процессе, в который выполняется несколько надстроек.
Реализация Windows 7 и 10
В Windows 7 и более поздних версиях при регистрации обработчика фильтра, обработчика свойств или нового расширения возникает новое поведение. При установке нового обработчика свойств и /или обработчика фильтров файлы с соответствующими расширениями автоматически индексируются.
В Windows 7 и более поздних версиях рекомендуется установить обработчик фильтра вместе с соответствующими обработчиками свойств и зарегистрировать обработчик фильтра перед обработчиком свойств. Регистрация обработчика свойств инициирует немедленное повторное индексирование ранее индексированных файлов, не требуя перезапуска, и использует все ранее зарегистрированные обработчики фильтров для целей индексирования контента.
Если только обработчик фильтра установлен без соответствующего обработчика свойств, автоматическое повторное индексирование происходит либо после перезапуска службы индексирования, либо перезапуска системы.
Флаги описания свойств, относящиеся к Windows 7, см. в следующих справочных разделах: GETPROPERTYSTOREFLAGS, PROPDESC_COLUMNINDEX_TYPE и PROPDESC_SEARCHINFO_FLAGS.
Реализация Windows Vista
В Windows Vista и более ранних версиях установка IFilter или обработчика свойств не инициирует повторное индексирование существующих элементов, если только независимый поставщик программного обеспечения (ISV) явно не вызывает перестроение или повторное индексирование соответствующих URL-адресов.
Существует два основных различия между устаревшими приложениями, такими как служба индексирования и более новые приложения, такие как Поиск Windows, которые следует учитывать при реализации фильтров:
- Использование интерфейса IPersistStream.
- Использование обработчиков свойств.
Во-первых, Windows Vista и Windows Search 3.0 и более поздних версий требуют использования IPersistStream по следующим причинам:
- Обеспечение производительности и будущей совместимости.
- Чтобы повысить безопасность. Фильтры, реализованные с помощью IPersistStream, являются более безопасными, так как контекст, в котором выполняется фильтр, не требует прав на открытие файлов на диске или по сети.
Хотя поиск Windows использует только интерфейс IPersistStream, вы также можете включить интерфейс IPersistFile и (или) реализации интерфейса IPersistStorage в фильтрах для обратной совместимости.
Вторая основная разница заключается в том, что Windows Vista и Windows Search 3.0 и более поздних версий имеют новый системе свойств, которая использует обработчики свойств для перечисления свойств элементов.
Однако существует время, когда необходимо реализовать фильтр, обрабатывающий как содержимое, так и свойства, чтобы:
- Поддержка устаревших реализаций MSSearch.
- Перекрестные ссылки.
- Сохранение сведений о языке.
- Рекурсивно фильтруйте внедренные элементы.
В таких ситуациях требуется полная реализация фильтра, включая метод IFilter::GetValue для доступа к значениям свойств.
Устаревшая реализация
Как отмечалось ранее, Windows Vista и Поиск Windows включают новую систему свойств, которая инкапсулирует свойства элемента, отдельное от содержимого элемента. Эта система свойств не существует в более ранних версиях microsoft Windows Desktop Search (WDS) 2.x. Если фильтр должен поддерживать другие приложения, как описано выше, может потребоваться обрабатывать как содержимое, так и свойства.
Дополнительные сведения о разработке совместимого фильтра см. в следующих разделах, IFilter (для устаревших приложений)и разработка надстроек фильтра (для устаревших приложений).
Фильтры поиска Windows
Корпорация Майкрософт предоставляет несколько стандартных фильтров с помощью поиска Windows. Содержимое библиотеки DLL IFilter приведено в следующей таблице. Щелкнув имя обработчика фильтра, вы перейдете к описанию для реализации IFilter.
Обработчик фильтра | Отфильтрованные файлы | IFilter DLL |
---|---|---|
обработчик фильтра MIME | Расширение многоцелевой почты Интернета (MIME) | mimefilt.dll |
обработчик фильтра HTML | HTML 3.0 или более ранней версии | nlhtml.dll |
обработчик фильтра документов | Microsoft Word, Excel, PowerPoint | offfilt.dll |
обработчик обычного текстового фильтра | Обычные текстовые файлы — IFilter по умолчанию | query.dll |
двоичный или пустой обработчик фильтра | Двоичные файлы — null IFilter | query.dll |
Обработчик фильтра MIME
Обработчик фильтра MIME (в mimefilt.dll) извлекает текстовые и свойства из файлов с расширениями .eml, MHT и MHTML.
Обработчик фильтра HTML
Обработчик фильтра HTML (в nlhtml.dll) извлекает текст и сведения о свойстве из класса htmlfiles, чтобы его можно было индексировать с помощью поиска Windows. Описание связи между IFilter и типом файла см. в разделе "Поиск библиотеки DLL IFilter для файла" в регистрации обработчиков фильтров.
Вы можете использовать функцию тега META
HTML-документов для передачи специальных запросов на обработку в html-IFilter.
META
теги происходят в начале HTML-файла в тегах HEAD ... /HEAD
, как показано в следующем примере.
<head>
<META NAME="DESCRIPTION"
CONTENT="This text appears on the results page as the document's summary.">
</head>
Некоторые теги HTML-META
автоматически сопоставляются с известными значениями набора свойств и идентификатора свойства (идентификатора свойства (PID)), чтобы запросы к этим свойствам выполнялись поиском сопоставленного содержимого. В следующей таблице перечислены некоторые примеры. Список системных свойств, которые можно использовать для форматов файлов, см. в разделе System-Defined Свойства для пользовательских форматов файлов.
Пример свойства | Сопоставлено с |
---|---|
meta name="author" content="ruth" | Свойство автора в наборе свойств Сводной информации. |
meta name="subject" content="word processing" | Свойство темы в наборе свойств Сводной информации. |
meta name="keywords" content="fonts, serif" | Свойство ключевого слова в наборе свойств Сводной информации. |
meta name="ms.category" content="fiction" | Свойство категории в наборе свойств сводки сведений о документе. |
Некоторые функции HTML-IFilter перечислены в следующей таблице.
Задача | Действие | Пример | |
---|---|---|---|
Создание специальных абстрактов из файлов | Используйте тег META NAME="DESCRIPTION"... , чтобы указать IFilter использовать строку, следующую за ключевым словом CONTENT в качестве абстрактного документа.
Примечание : |
|
|
Предотвращение фильтрации отдельных файлов | Добавьте в файл тег meta name . |
|
|
Задание языкового кода для файла (чтобы система выбрала правильные средства разбиения слов языка и файлы шумных слов) | Добавьте следующий тег meta name в файл, где поле содержимого задает соответствующий языковой код (в символах или с помощью значения языкового стандарта). |
|
Обработчик фильтра документов
Обработчик фильтра документов (в offilt.dll) фильтрует файлы для некоторых расширений документов в Microsoft Office. К ним относятся файлы с расширениями .doc, .mdb, .pptи XLT, например.
Обработчик фильтра обычного текста
Для файлов с открытым текстом в Службе поиска Windows используется обработчик текстового фильтра, который фильтрует как системные свойства (такие как имена файлов), так и содержимое файла. Если тип файла не имеет связи IFilter в реестре, поиск Windows индексирует только свойства оболочки для файла. Однако пользователь может использовать расширенных параметров в панели управления параметров индексирования для свойств индекса или свойств индекса и содержимого файла.
снимок экрана
Если пользователь выбирает этот параметр для типа файла без связанного IFilter, обработчик текстового фильтра используется для извлечения содержимого файла. Обработчик текстового фильтра не понимает никакого формата документа; При фильтрации содержимого файла он обрабатывает файл как последовательность символов. Он проверяет отметку порядка байтов Юникода в начале файла.
Обработчик двоичного или null фильтра
При обнаружении зарегистрированного двоичного файла используется обработчик фильтра NULL. Обработчик фильтра NULL извлекает только системные свойства. Содержимое двоичного файла не фильтруется. Примерами системных свойств являются Имя_файла, LastWriteTime, FileSizeи атрибуты .
Дополнительные ресурсы
- Пример кода IFilterSample, доступный в GitHub, демонстрирует, как создать базовый класс IFilter для реализации интерфейса IFilter.
- Общие сведения о процессе индексирования см. в процесса индексирования.
- Общие сведения о типах файлов см. в типах файлов.
- Сведения о запросах атрибутов сопоставления файлов для типа файла см. в разделе PerceivedTypes, SystemFileAssociations ирегистрации приложений.
Связанные разделы
разработка обработчиков фильтров
о обработчиках фильтров в поиска Windows
рекомендации по созданию обработчиков фильтров в поиска Windows
возврат свойств из обработчика фильтров
реализации обработчиков фильтров в поиска Windows