Windows 7 资源管理器搜索Channel 9 视频

     在Windows 7 中Federated Search 可以通过OpenSearch 协议访问到远程数据资源,也就意味着用户可以使用资源管理器(Windows Explorer)搜索并浏览远程数据。本篇我们将制作一个搜索连接器(Search Connector)查找Channel 9 上的视频资料。

Federated Search 工作原理

下图描绘了Federated Search 的基本工作原理:

Map

1. 首先通过.osdx(OpenSearch Description)文件安装搜索连接器。osdx 的文件类型是我们熟知XML 格式,其使用方法和相关格式可以参考OpenSearch。由于在Windows 7 中.osdx 是可以直接识别的文件类型,所以只需双击该文件即可完成安装。

2. 搜索连接器安装后便可以在资源管理器中看到Channel 9 选项:

Favorites

接下来可以通过Search Provider 来搜索我们想找的视频内容:

HTTPSearch

     虽然只是输入了简单的几个关键字,其实Search Provider 在幕后将搜索框里文字替换进类似“http://channel9.msdn.com/Search/feed/rss/?Term={searchTerms}” 的HTTP 请求中,并发送到具有OpenSearch 服务的主机。

3. 当Channel 9 服务器接到请求后会要马上进行查询,并将结果以RSS 格式(如下图所示)返回到我们的计算机。

RSSCode 

4. 最后,Windows Explorer 把这些RSS 代码稍作整理将美观的内容呈现到我们面前。

 Search

创建OSDX 搜索连接器

.osdx 文件分为两部分内容,一部分用于构造HTTP 请求及osdx 的一些基本信息:

<?xml version="1.0" encoding="utf-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" 
                       xmlns:ms-ose="http://schemas.microsoft.com/opensearchext/2009/">
  <ShortName>Channel 9</ShortName>
  <Description>Search on Channel 9 in Windows 7</Description>
  <Url type="application/rss+xml" template="http://channel9.msdn.com/Search/feed/rss/?Term={searchTerms}"></Url>
  <Url type="text/html" template="http://channel9.msdn.com/Search/?Term={searchTerms}"></Url>
  ... ...
</OpenSearchDescription>

下表列出了URL 模板参数的相关使用方法:

另一部分用来整理返回的RSS 搜索结果:

<?xml version="1.0" encoding="utf-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" 
                       xmlns:ms-ose="http://schemas.microsoft.com/opensearchext/2009/">
  ... ...
  <ms-ose:ResultsProcessing format="application/rss+xml">
    <ms-ose:PropertyMapList>
      <ms-ose:PropertyMap sourceNamespaceURI="http://www.mscommunities.com/rssmodule/">
        <ms-ose:Source path="previewtext">
          <ms-ose:Property name="System.AutoSummary" />
        </ms-ose:Source>
      </ms-ose:PropertyMap>
      <ms-ose:PropertyMap sourceNamespaceURI="http://purl.org/dc/elements/1.1/">
        <ms-ose:Source path="creator">
          <ms-ose:Property name="System.Author" />
        </ms-ose:Source>
      </ms-ose:PropertyMap>
      <ms-ose:PropertyMap sourceNamespaceURI="">
        <ms-ose:Source path="enclosure/@url">
          <ms-ose:Property name="System.ContentUrl" />
        </ms-ose:Source>
      </ms-ose:PropertyMap>
      <ms-ose:PropertyMap sourceNamespaceURI="">
        <ms-ose:Source path="enclosure/@type">
          <ms-ose:Property name="System.MIMEType" />
        </ms-ose:Source>
      </ms-ose:PropertyMap>
    </ms-ose:PropertyMapList>
  </ms-ose:ResultsProcessing>
</OpenSearchDescription>

整理好的结果会以下图方式体现出来:

List

下表为RSS XML 与Windows Shell 属性的Mapping 参数:

Mappings

最后将编辑好的文档保存为.osdx 格式即可,双击文件安装搜索连接器:

Add

参考资料

1. Windows 7 Federated Search Provider Implementer's Guide
http://www.microsoft.com/downloads/details.aspx?familyid=c709a596-a9e9-49e7-bcd4-319664929317&displaylang=en&tm

2. Federated Search in Windows
http://msdn.microsoft.com/en-us/library/dd742958(VS.85).aspx

3. Creating an OpenSearch Description File in Windows Federated Search
http://msdn.microsoft.com/en-us/library/dd742951(v=VS.85).aspx

4. OpenSearch
http://www.opensearch.org/Specifications/OpenSearch/1.1

Channel 9 搜索连接器下载

posted @ 2010-04-23 09:38  Gnie  阅读(3667)  评论(6编辑  收藏  举报
Copyright © 2010 Gnie