从筛选器处理程序返回属性

属性是从使用已注册属性处理程序的项中提取的,或使用为特定文件类型注册的筛选器。 筛选器处理程序( IFilter 接口的实现)可以通过多种方式解释文件类型的内容。

本主题按如下所示进行组织:

属性筛选

下表列出了属性筛选的最佳做法。

方法 Description
IFilter::Init 返回 IFILTER_FLAGS 枚举。 如果此枚举 IFILTER_FLAGS_OLE_PROPERTIES 成员设置为一个,则 Windows 搜索将使用 IPropertySetStorageIPropertyStorage 接口接口来枚举和访问外部值类型属性。
IFilter::GetChunk 返回文档中包含块类型(文本或值)、名称和区域设置的“区块”信息。 区块包含一个文档属性。
IFilter::GetText 从区块获取文本类型属性。
IFilter::GetValue 从区块获取值类型属性。

下图显示了一个示例文档。 外部值类型属性 DocTitle (使用 IPropertySetStorageIPropertyStorage 接口的方法获取)和内部值类型属性 Book (由于自定义 IFilter 实现获得)将文档描述为整体。 文本类型属性 ContentsChapter 描述文档的内容。 处理本文档时,筛选器处理程序( IFilter 接口的实现)标识并提取这些属性。

典型文档元素的图示

属性大小限制

属性大小存在两个潜在限制:

  • Windows 搜索接受每个文件的最大数据大小。
  • 属性说明文件中定义的每个属性的最大大小。

目前,Windows 搜索在计算它从项接受的数据量时,不会使用定义的属性大小。 相反,Windows 搜索使用的限制是从注册表读取的文件大小和 MaxGrowFactor (文件大小 N * MaxGrowFactor)的乘积。 默认值 MaxGrowFactor 为 4。

HKEY_LOCAL_MACHINE
   SOFTWARE
      Microsoft
         Gathering Manager
            MaxGrowFactor

因此,如果你的文件类型往往大小较小,但具有较大的属性,Windows 搜索可能不接受要发出的所有属性数据。 但是,你可以增加 MaxGrowFactor 以满足你的需求。

其他资源

开发筛选器处理程序

关于 Windows 搜索中的过滤器处理程序

在 Windows 搜索中创建筛选器处理程序的最佳做法

随 Windows 一起交付的筛选器处理程序

在 Windows 搜索中实现筛选器处理程序

注册过滤器处理程序

测试筛选器处理程序