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

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

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

属性筛选

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

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

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

diagram showing the elements of a typical document

属性大小限制

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

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

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

HKEY_LOCAL_MACHINE
   SOFTWARE
      Microsoft
         Gathering Manager
            MaxGrowFactor

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

其他资源

开发筛选器处理程序

关于Windows搜索中的筛选器处理程序

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

附带Windows的筛选器处理程序

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

注册筛选器处理程序

测试筛选器处理程序