【问题标题】:Is it possible to extend the Windows Search index with just a Filter handler?是否可以仅使用过滤器处理程序来扩展 Windows 搜索索引?
【发布时间】:2011-07-25 18:09:35
【问题描述】:

我想尝试使用我拥有的一些自定义数据来扩展 Windows 搜索索引。为此,我将数据放入自定义文件格式,并编写了一个 Windows 搜索过滤器处理程序,该处理程序知道如何向索引器注册新文件类型。看起来我的代码应该可以工作:当我注册 DLL 时,新文件类型显示在索引选项中的可索引“文件类型”列表中,当我针对我的自定义文件类型运行 filtdump.exe 时,它​​正确输出我希望为每个块输出的值。

话虽如此,我无法让这些值显示在 Windows 搜索索引中。我尝试过重新索引(多次),我尝试将高级索引选项更改为“索引属性和文件内容”。我将自定义文件放在索引位置,例如 Documents 文件夹和桌面。

在高层次上:真的有可能只使用一个适用于自定义文件格式的过滤器处理程序来扩展 Windows 搜索索引吗?它在文档中说您必须使用协议处理程序实现一个 shell 数据源来扩展索引,但是在其他地方说如果您只是添加一个新的自定义文件格式,您只需要创建一个过滤器处理程序(或协议处理程序)。我不确定什么是正确的。我真的不需要 shell 数据源来完成我想要完成的工作。

如果人们有任何测试想法,我们也将不胜感激。谢谢!

【问题讨论】:

    标签: c++ windows search indexing


    【解决方案1】:

    您需要为要注册的 IFilter 添加正确的注册表项。有两个主要键,一个是注册处理程序,另一个是注册给定的文件扩展名以使用您的处理程序。如果您查看 Windows 搜索 SDK 示例 (http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=7388) 中的 FilterSample。

    注册课程:http://msdn.microsoft.com/en-us/library/ms692540%28v=VS.85%29.aspx 使用给定的文件扩展名注册它:http://msdn.microsoft.com/en-us/library/ms692488%28v=VS.85%29.aspx

    不幸的是,它仍将索引为英语并使用英语 WordBreaker 和 English Stemmer 以及位于 C:\windows\system32\noise.dat 和 \noise.enu 中的英语噪声文件(停用词)过滤。

    如果我弄清楚如何修复该部分,我会告诉你的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多