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

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

本主题的组织方式如下:

属性筛选

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

方法 说明
IFilter::Init 返回 IFILTER_FLAGS 枚举。 如果此枚举 的 IFILTER_FLAGS_OLE_PROPERTIES 成员设置为 1,则 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 搜索中实现筛选器处理程序

注册筛选器处理程序

测试筛选器处理程序