Windows 中的联合搜索入门

Windows 7 支持使用 OpenSearch 技术实现远程数据存储的搜索联合,使用户能够从 Windows 资源管理器中访问远程数据并与之交互。 可以构建一个基于 Web 的数据存储,该数据存储可以使用 Windows 联合搜索进行搜索,并与 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 中的联合搜索,必须执行许多任务。 下表列出了用于启用数据存储的任务、完成每个任务所需的任务以及查找文档的位置。

任务 Requirement Documentation
启用数据存储以供 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 提供程序,然后将查询发送到远程数据存储。 远程 Web 服务通过在两种受支持的格式之一(RSS 或 Atom)中提供 XML 文档中的结果(通常称为源)来响应查询。 信息流中的每个结果项都包含用于表示或描述项元数据的 XML 子元素,例如标题、URL、描述、缩略图等。 OpenSearch 提供程序负责将 XML 元素值映射到 Windows 应用程序可以使用的 Windows Shell 系统属性。

联合搜索示例

以下示例 OpenSearch Description (.osdx) 文件由 ShortName 和 Url 元素组成,它们是通过 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 联合搜索中部署搜索连接器