在 Windows 中使用联合搜索入门

Windows 7 支持使用 OpenSearch 技术对远程数据存储进行搜索联合,使用户能够从 Windows 资源管理器中访问其远程数据并与之交互。 你可以构建一个可以使用 Windows 联合搜索进行搜索的基于 Web 的数据存储,并实现远程数据源与 Windows 资源管理器的丰富集成,而无需编写或部署任何 Windows 客户端代码。

本主题的组织方式如下:

Windows 7 支持通过 OpenSearch 协议将外部源连接到 Windows 客户端。 这使用户能够搜索远程数据存储并从 Windows 资源管理器中查看结果。 OpenSearch v1.1 标准定义了简单的文件格式,可用于描述客户端应如何查询 Web 服务以获取数据存储,以及服务应如何返回客户端呈现的结果。 Windows 联合搜索连接到接收 OpenSearch 查询的 Web 服务,并返回 RSS 或 Atom XML 格式的结果。

以下屏幕截图演示了远程搜索 SharePoint 网站后获得的搜索结果。

显示 Sharepoint 网站搜索结果的屏幕截图,如 Windows 资源管理器中所示

若要生成联合搜索,请执行以下步骤:

  1. 通过提供可返回 RSS 或 Atom 格式结果的 OpenSearch 兼容 Web 服务,使数据存储能够从 Windows 资源管理器进行搜索。
  2. 创建 OpenSearch Description (.osdx) 文件,该文件介绍如何连接到 Web 服务以及如何映射 RSS 或 Atom XML 中的任何自定义元素。
  3. 使用 .osdx 文件将搜索连接器部署到 Windows 客户端计算机。

下图说明了生成联合搜索的步骤。

生成联合搜索的过程示意图

联合搜索的工作原理

Windows 资源管理器与 OpenSearch Web 服务之间的通信通过 Windows 数据层执行。 Windows 数据层可以通过 Windows 应用商店提供程序与不同类型的数据存储进行通信。 每个提供程序专门与支持特定协议并具有特定功能的数据存储进行通信。 例如,下图说明了 OpenSearch 提供程序如何与提供支持 OpenSearch 标准的 Web 服务的数据存储进行通信。

显示客户端上的 Windows 资源管理器通过远程服务器上的 opensearch 数据存储进行通信的示意图

若要使数据存储支持 Windows 7 中的联合搜索,必须执行许多任务。 下表列出了启用数据存储的任务、完成每个任务所需的内容以及查找文档的位置。

任务 要求 文档
允许 Windows 资源管理器搜索数据存储。
生成与 OpenSearch 兼容的 Web 服务。
创建 OpenSearch Description (.osdx) 文件。
在 Windows 联合搜索中连接 Web 服务
在 Windows 联合搜索中启用数据存储
主动将 Web 服务部署到企业中的用户。
向用户提供一个 .osdx 文件,将其复制到本地,然后让用户通过快捷方式访问该文件。
在 Windows 联合搜索中部署搜索连接器
枚举 Windows 资源管理器中的搜索结果以响应查询。
实现接受查询字符串并返回 RSS 或 Atom 格式结果的 Web 服务。
在 Windows 联合搜索中连接 Web 服务
允许用户将数据存储添加到其 Windows 资源管理器。
创建 .osdx 文件并将其提供给用户。
在 Windows 联合搜索中启用数据存储
在 Windows 资源管理器中将项目显示为类似文件的项。
使用 机箱media:content 元素返回文件或内容流的 URL
提供客户端计算机可识别的文件扩展名或 MIME 类型。
在 Windows 联合搜索中启用数据存储
在 Windows 资源管理器中显示自定义属性,超出 RSS 或 Atom 标准中定义的属性。
通过在 RSS/Atom 输出中使用另一个 XML 命名空间来提供其他元数据。
将属性映射添加到 .osdx 文件。
在 Windows 联合搜索中创建 OpenSearch 描述文件
自定义在 Windows 资源管理器中为项显示的属性。
将 proplist 映射添加到 .osdx 文件。
在 Windows 联合搜索中创建 OpenSearch 描述文件
在预览窗格中显示项的自定义网页视图。
返回不同的链接和机箱值。
将 URL 值映射到 System.WebPreviewUrl Windows Shell 属性。
在 Windows 联合搜索中创建 OpenSearch 描述文件
在 Windows 资源管理器中显示一个命令栏按钮,该按钮将查询滚动到网站。
在 .osdx 文件中提供 Url format="text/html" 模板。
在 Windows 联合搜索中创建 OpenSearch 描述文件

 

在 RSS 或 Atom 中发送查询并返回搜索结果

当用户在 Windows 资源管理器右上角的搜索框中键入字词时,查询将发送到 OpenSearch 提供程序,然后 OpenSearch 提供程序将查询发送到远程数据存储。 远程 Web 服务通过在 XML 文档(通常称为源)中提供结果来响应查询,其 (格式为 RSS 或 Atom) 的两种受支持的格式之一。 源中的每个结果项都包含用于表示或描述项元数据(如标题、URL、说明、缩略图等)的 XML 子元素。 OpenSearch 提供程序负责将 XML 元素值映射到 Windows 应用程序可以使用的 Windows Shell 系统属性。

联合搜索示例

下面的示例 OpenSearch Description (.osdx) 文件包含 ShortNameUrl 元素,它们是通过 OpenSearch 协议将外部数据存储连接到 Windows 客户端所需的最小子元素。

<OpenSearchDescription xmlns="https://a9.com/-/spec/opensearch/1.1/">
        <ShortName>My web Service</ShortName>
        <Url format="application/rss+xml" template="https://example.com/rss.php?query={searchTerms}&amp;start={startIndex}&amp;cnt={count}" />
        </OpenSearchDescription>

以下示例演示如何使启用 Web 的数据存储以 RSS 格式可搜索,以及如何指定返回一个搜索项:

<rss version="2.0" xmlns:media="https://search.yahoo.com/mrss/" xmlns:example="https://example.com/namespace">
   <channel>
      <title>Search Results</title>
      <item>
         <title>An example result</title>
         <link>https://example.com/pictures.aspx?id=01</link>
         <description>This is a test of the emergency search results system. If this were a real emergency result, then you would be reading something more useful.</description>
         <pubDate>Wed, 1 Oct 2008 23:12:00 GMT</pubDate>
         <media:content url="https://example.com/pictures/picture01.jpg" fileSize="212889" type="image/jpeg" height="768" width="1024"/>
         <media:thumbnail url="https://example.com/thumbnails/picture01.jpg" height="120" width="160"/>
         <example:dateTaken>Mon, 22 Sep 2008 23:12:00 GMT</example:dateTaken>
      </item>
   </channel>
</rss>

以下示例演示如何将属性映射到默认系统属性,以便对显示的项进行排序和分组:

<author>Sanjay Jacobs</author>
                <category>Nature</category>
                <pubDate>Thu, 24 Apr 2008 2003 21:34:38 GTMT</pubDate>

以下示例演示如何向 Windows 资源管理器中的每个项添加缩略图显示:

<media:thumbnail>    

其他资源

有关在 Windows 7 及更高版本中使用 OpenSearch 技术实现对远程数据存储的搜索联合的其他信息,请参阅 Windows 联合搜索中的“其他资源”。

Windows 中的联合搜索

在 Windows 联合搜索中连接 Web 服务

在 Windows 联合搜索中启用数据存储

在 Windows 联合搜索中创建 OpenSearch 描述文件

遵循 Windows 联合搜索中的最佳做法

在 Windows 联合搜索中部署搜索连接器