Windows Search — выделение условий поиска IFilter

У моей команды разработчиков возникла проблема с отображением фрагментов текста для результатов поиска в Windows 7 для наших собственных пользовательских файлов (обратите внимание, что мы НЕ говорим о панели предварительного просмотра, которая использует интерфейс IPreviewHandler). Пример того, что я имею в виду для файлов .txt, показан ниже:

Пример поиска

Показанный здесь текстовый фрагмент с выделенным результатом не отображается для наших собственных файлов, отображается только имя файла.

Мы внедрили IFilter для наших файлов, и это правильно индексирует содержимое файла (поиск возвращает правильные результаты). Он просто не будет показывать фрагмент и выделять поисковый запрос.

Мы подозревали, что это может быть связано со значениями cwcStartSource и cwcLenSource для STAT_CHUNK в IFilter, но установка для них разных значений пока ничего не дала.

Кто-нибудь еще имел подобный опыт или есть какие-либо мысли?

Заранее спасибо.


person Jamie    schedule 14.10.2010    source источник


Ответы (1)


Вам необходимо создать обработчик предварительного просмотра для вашего типа файла.

Он также может отображать расширенные предварительные просмотры элементов в области предварительного просмотра без запуска приложения по умолчанию, если приложение зарегистрировало обработчик предварительного просмотра. Это может обеспечить такие функции, как навигация по типу файла (например, просмотр презентации с использованием элементов управления «следующий/предыдущий» или поиск внутри медиафайла).[29] Обработчики предварительного просмотра также могут разрешать определенные виды выбора (например, выделение фрагмента текста) из самой панели предварительного просмотра.

источник

Существует множество примеров кода для PDF-файлов и тому подобного.

Посмотрите здесь: CodePlex: пакет обработчиков предварительного просмотра для Windows

Изменить:

Чтобы уточнить, панель результатов поиска в Windows 7 является хостом обработчика предварительного просмотра. Он состоит из двух основных частей: представления содержимого и панели предварительного просмотра.

Проводник Windows также включает режим просмотра, называемый представлением содержимого, который является представлением по умолчанию при просмотре результатов поиска. Представление «Содержимое» показывает имя, местоположение, некоторые теги метаданных, связанные с файлом, эскиз файла и фрагмент файла. В этом режиме просмотра также используется выделение совпадений, чтобы показать, где в файлах встречается термин запроса, что позволяет легко понять, почему этот файл был возвращен в списке результатов поиска.

источник

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

В Windows Vista и более поздних версиях поиск Windows интегрирован во все окна проводника Windows для мгновенного доступа к поиску.

...

Обработчики предварительного просмотра и обработчики миниатюр позволяют пользователям просматривать документы в проводнике Windows без необходимости открывать приложение, в котором они были созданы.

источник

Чтобы убедиться, что вы правильно реализовали свой пользовательский тип файла, вы можете попробовать File Type Verifier из Windows 7 SDK, который проверит следующие вещи, связанные с вашим пользовательским файлом:

  • Обработчики предварительного просмотра
  • Обработчики эскизов
  • Обработчики свойств
  • Обработчики глаголов
  • Фильтры (IFilter)
  • Добрые ассоциации
  • Воспринимаемые типы
  • Важные свойства

Использование представления контента

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

Общий обзор представления содержимого см. в этой статье:

Просмотр содержимого по типу или типу файла

person GalacticJello    schedule 19.10.2010
comment
Также только что наткнулся на аналогичный вопрос с некоторыми хорошими ссылками: stackoverflow.com/questions/1688841/ - person GalacticJello; 19.10.2010
comment
Похоже, что весь этот код относится к предварительному просмотру документов на панели предварительного просмотра. Я не вижу ничего, связанного с отображением выдержки из документа в результатах поиска. - person Jamie; 22.10.2010
comment
Панель результатов поиска является панелью предварительного просмотра. Ему нужен обработчик предварительного просмотра для вашего пользовательского типа файла, чтобы показать его... Я добавлю для вас поясняющий текст. - person GalacticJello; 22.10.2010
comment
А, я понимаю, о чем вы говорите: о просмотре контента... Я исправлю свой пост. - person GalacticJello; 22.10.2010
comment
Я добавлю больше о представлении содержимого и реальном корне вашей проблемы после того, как запущу образец IFilter. - person GalacticJello; 22.10.2010
comment
Замечательно. Спасибо за информацию. Джейми - person Jamie; 22.10.2010