C++ 是否可以仅使用筛选器处理程序扩展Windows搜索索引?

C++ 是否可以仅使用筛选器处理程序扩展Windows搜索索引?,c++,windows,search,indexing,C++,Windows,Search,Indexing,我想尝试用一些自定义数据扩展Windows搜索索引。为此,我将数据放在自定义文件格式中,并编写了一个Windows搜索过滤器处理程序,它知道如何向索引器注册新的文件类型。似乎我的代码应该可以工作:当我注册DLL时,新的文件类型会显示在索引选项中的可索引“文件类型”列表中,当我针对自定义文件类型运行filtdump.exe时,它会正确输出我希望为每个块输出的值 也就是说,我无法获取Windows搜索索引中显示的值。我尝试过重新编制索引(多次),我尝试过将高级索引选项更改为“索引属性和文件内容”。我

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

也就是说,我无法获取Windows搜索索引中显示的值。我尝试过重新编制索引(多次),我尝试过将高级索引选项更改为“索引属性和文件内容”。我将自定义文件放在索引位置,如Documents文件夹和桌面

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


如果人们有任何测试想法,我们也会很感激。谢谢

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

要注册该类,请执行以下操作: 要使用给定的文件扩展名注册它,请执行以下操作:

不幸的是,它仍将索引为英语,并使用英语分词器和英语词干分析器以及C:\windows\system32\noise.dat和\noise.chs中的英语噪声文件(停止词)过滤

如果我知道如何修理那部分,我会告诉你的