我最近发现了一篇关于Windows 7新版Federated Search and Search Connectors的文章。基本上,您为用户提供了一个小型XML文件(.osdx;一个OpenSearch XML文件),然后他们可以使用资源管理器搜索您所拥有的任何内容。这些搜索连接器实际上非常容易实现 - 资源管理器使用查询调用您的URL,您只需将结果作为RSS返回。
大。我目前正在开发一个Web应用程序,这种功能可能是一个很好的额外功能,可以提供给我的用户。所以我安装了样本.osdx并试了一下。它的工作原理与广告一样:
这很酷,但我希望我的搜索结果可以从“开始”菜单中获得。我(在我看来)的观点是,当应用程序本身尚未打开时,可以轻松,快速地直接访问我的Web应用程序中的项目。如果我必须打开资源管理器窗口,单击我的搜索连接器,然后搜索,只是打开浏览器并在Web应用程序中进行搜索有什么区别?
这是我尝试过的:
%UserProfile%\Searches\name.searchConnector-ms
。此文件夹中的其他项目包括Outlook的连接器。查看该文件,有一个非常有前景的节点<includeInStartMenuScope>
。我将此节点的值true
添加到Channel 9 Connector,但没有运气。 (我甚至试过重启。)那么,如何在“开始”菜单的即时搜索中提供项目?理想情况下,我只想配置搜索连接器的结果,但我不反对在C#中连接将安装在客户端计算机上的内容。
答案 0 :(得分:2)
传统上,扩展Windows搜索的方法是通过IFilters,允许Windows了解新类型的文件。这种方法肯定会将您绑定到“开始”按钮结果。
在这种情况下,您正在处理federated search,这使得在线内容的行为就像在用户的计算机上一样。
不幸的是,我找不到任何能明显解决问题的方法。因此,您可能需要分两部分构建一个kludge:
顺便提一下,如果您对术语“IFilter”进行网络搜索并转到前几个搜索结果,您可能会认为由于页面顶部的注释而不再使用IFilter。
如果发生这种情况,那么您就在旧的IFilter网站上。有关此主题的MSDN文档的当前URL位于http://msdn.microsoft.com/en-us/library/bb266451(v=VS.85).aspx。
警告的最后一点:
在Windows 7及更高版本中,显式阻止使用托管代码编写的过滤器。由于多个加载项运行的进程可能存在CLR版本问题,因此必须使用本机代码编写过滤器。