Windows搜索 - IFilter搜索词突出显示

时间:2010-10-14 14:08:41

标签: windows winapi search ifilter windows-search

我的开发团队遇到问题,在Windows 7中为我们自己的自定义文件显示搜索结果的文本片段(请注意,我们不是在谈论使用IPreviewHandler接口的预览窗格)。我对.txt文件的一个例子如下所示:

Search example

此处显示的带有突出显示结果的文本片段未显示给我们自己的文件,只显示文件的名称。

我们已经为我们的文件实现了IFilter,这正确地索引文件内容(搜索返回正确的结果)。它只是不会显示代码段并突出显示搜索字词。

我们怀疑它可能与cwcStartSource和IFilter中STAT_CHUNK的cwcLenSource值有关,但是将它们设置为不同的值到目前为止还没有产生任何效果。

有没有其他人有类似的经历或有任何想法?

提前致谢。

1 个答案:

答案 0 :(得分:5)

您需要为您的文件类型生成预览处理程序。

  

如果应用程序已注册预览处理程序,它还可以在预览窗格中呈现项目的增强预览,而无需启动默认应用程序。这可以提供诸如文件类型特定导航之类的功能(例如使用下一个/上一个控件浏览演示文稿,或在媒体文件内搜索)。[29]预览处理程序还可以允许从预览窗格本身执行某些类型的选择(例如突出显示文本片段)。

source

有许多代码示例可供Java等用户使用。

点击此处:CodePlex:Windows Preview Handler Pack

修改

为了澄清,Windows 7中的搜索结果窗格是预览处理程序主机。它有两个主要部分:内容视图和预览窗格。

  

Windows资源管理器还包括一个名为“内容”视图的视图模式,这是查看搜索结果时的默认视图。 “内容”视图显示名称,位置,与文件关联的一些元数据标签,文件的缩略图图像以及文件的片段。此视图模式还使用命中突出显示来显示查询术语在文件中的显示位置,这使您可以轻松理解搜索结果列表中返回该文件的原因。

source

如果您需要增强功能,例如查看自定义文件类型的文件内容,则需要预览处理程序用于任何自定义文件类型。

  

在Windows Vista及更高版本中,Windows搜索已集成到所有Windows资源管理器窗口中,以便即时访问搜索。

     

...

     

预览处理程序和缩略图处理程序使用户能够在Windows资源管理器中预览文档,而无需打开创建它们的应用程序。

source

要验证您是否已正确实施自定义文件类型,可以尝试使用Windows 7 SDK中的File Type Verifier,它将测试以下与您的自定义文件相关的内容:

  • 预览处理程序
  • 缩略图处理程序
  • 物业处理员
  • 动词处理程序
  • 过滤器(IFilter)
  • 亲切协会
  • 感知类型
  • 重要属性

使用内容视图

  

您可以利用内容   通过使用两种不同的方式来查看   方法。您可以使用现有的   一组属性和布局模式,   或者你可以创建自己的   组合。这两种方法是   详细描述:

     

有关内容视图的一般概述,请参阅此文章:

Content View By File Type or Kind