Internet Explorer 中的搜索提供程序扩展性

Windows Internet Explorer 8 的新增功能

从 Internet Explorer 7 开始,即时搜索框可提供自动完成功能,因此用户可以搜索在以前的搜索中使用过的类似搜索词。 Internet Explorer 7 还允许用户添加多个搜索提供程序。 Internet Explorer 8 中的搜索功能改进主要通过显著改进即时搜索框下拉菜单和支持搜索建议,来帮助用户进行搜索。
本主题的目标读者有两类: 最终用户和网站开发人员。 本主题第一部分的重点在于帮助最终用户安装搜索提供程序、管理搜索提供程序以及使用搜索提供程序查找所需内容。 本主题第二部分主要面向网站开发人员,演示了如何推广搜索提供程序以及如何使用搜索建议改进用户使用您的搜索提供程序的体验。

本主题讨论如下主题:

  • 最终用户搜索功能
    • 添加搜索提供程序
    • 管理搜索提供程序
    • 使用喜爱的搜索提供程序进行搜索
    • 提示和技巧
  • Web 开发人员搜索功能
    • 创建 OpenSearch 描述文件
    • 推广搜索提供程序
    • 提供搜索建议
    • 获取搜索建议菜单的尺寸
    • 标识搜索引用
    • 本地化搜索建议
    • 备注
  • 相关主题

最终用户搜索功能

最终用户使用 Internet Explorer 8 中的即时搜索功能可以添加自己喜爱的搜索提供程序,并可在搜索过程中快速切换提供程序。 Internet Explorer 8 支持搜索建议,可帮助用户更好地启动搜索查询。 搜索提供程序还可以提供对查询的即时应答。 除了使用即时搜索框,用户还可以通过加速器菜单访问其所有搜索提供程序。 这些功能旨在为最终用户改进搜索体验并提高工作效率。
本节涵盖如下主题:

  • 添加搜索提供程序
  • 管理搜索提供程序
  • 使用喜爱的搜索提供程序进行搜索
  • 提示和技巧

添加搜索提供程序

Internet Explorer 7 和 Internet Explorer 8 浏览器窗口右上角的即时搜索框替代了原来的 Windows 搜索助手(或搜索窗格)。 必须先将特定搜索提供程序添加到您的列表中,才能使用该提供程序。 若要添加搜索提供程序,请浏览至该提供程序的网站。 安装搜索提供程序的方法有两种。

首先,提供程序网站可能显示一个链接或按钮,您单击该链接或按钮便可将该网站作为搜索提供程序添加到列表中。 单击该链接或按钮后,将显示“添加搜索提供程序”对话框,使您可以确认您的选择。

“添加搜索提供程序”对话框
图 1:“添加搜索提供程序”对话框。

如果此特定搜索提供程序已安装,则会出现一个对话框通知您,或者出现一个包含用于升级该提供程序的选项的对话框。 例如,搜索提供程序现在可能提供以前不提供的搜索建议。

添加搜索提供程序的第二种方法是通过发现进行。 在提供程序的网页加载后,即时搜索框上的下拉箭头会变为橙色,指示可以安装搜索提供程序。

即时搜索框上的橙色下拉箭头。
图 2:即时搜索框上的橙色下拉箭头。

在单击橙色下拉箭头时,将显示已安装搜索提供程序的列表及其他可用选项。 Internet Explorer 8 发现的搜索提供程序名称的左侧会显示一个金色图标。 在单击“添加搜索提供程序”选项时,将显示可用提供程序的列表。 下图显示了 Live Search 选项: 产品、图像和视频。

显示搜索提供程序和搜索选项的“添加搜索提供程序”菜单。
图 3:显示搜索提供程序和搜索选项的“添加搜索提供程序”菜单。

注意  为了帮助您入门,Internet Explorer 资源库中提供了提供程序列表。 通过从即时搜索框上的下拉箭头选择“查找更多提供程序...”,可以随时访问该资源库;如图 3 所示。

添加您自己的搜索提供程序

如果您的搜索提供程序未向您提供将其添加为搜索提供程序的直接方法,还可以手动添加。 按照 Windows 搜索指南(可能为英文网页)页面上的说明可创建您自己的搜索提供程序。 请注意,此小组件仅将提供程序添加为无搜索建议功能的搜索提供程序。 如果您知道该提供程序提供搜索建议,请使用搜索提供程序的网站添加该提供程序。

管理搜索提供程序

最多可以安装 200 个搜索提供程序,这么多提供程序可能难以管理。若要在 Internet Explorer 8 中管理搜索提供程序,请单击即时搜索框上的下拉箭头,然后单击“管理搜索提供程序”。 您可以对提供程序重新排序、更改默认状态并删除提供程序,如下图所示。

“管理 Internet Explorer 加载项”对话框。
图 4:“管理 Internet Explorer 加载项”对话框。

若要更改某个搜索提供程序的属性,请单击该提供程序名称,进行更改,然后单击“关闭”。

注意  无法删除当前默认提供程序。 若要删除默认提供程序,必须将另一个提供程序设置为“默认”状态。 若要执行该操作,请打开“管理搜索提供程序”对话框,单击另一个提供程序,然后单击“设为默认”按钮。 然后,单击要删除的提供程序并单击“删除”。

使用喜爱的搜索提供程序进行搜索

若要执行搜索,请在即时搜索框中键入搜索词。 尽管您可能已在 Internet Explorer 7 中熟悉了此框的用法,但还是会注意到 Internet Explorer 8 中搜索方式的显著改进。

当在即时搜索框中单击后,会显示“快速选择”菜单。 “快速选择”菜单在即时搜索框的整个宽度范围显示尽可能多的搜索提供程序图标,从而方便在提供程序之间切换。 若要在“快速选择”中查看更多搜索提供程序,请调整即时搜索框的大小。 您可以使用同一搜索词在不同提供程序进行搜索,而不必导航至每个提供程序的网站。

“快速选择”菜单。
图 5:“快速选择”菜单。

在输入您的搜索词后,按 Enter 可使用当前搜索提供程序,或从“快速选择”菜单中选择提供程序来执行搜索。 如果您使用的搜索提供程序支持搜索建议,则会随着您的键入而显示搜索建议。 例如,如果您使用 Live Search 搜索“Xbox”,则可能会看到下面的建议列表。

“Live Search 建议”下拉菜单。
图 6:“Live Search 建议”下拉菜单。

建议菜单顶部是自动完成部分,显示与当前搜索词匹配的最近搜索。 建议菜单的第二部分是建议部分,列出由当前搜索提供程序提供的搜索建议。 建议菜单的第三部分是历史记录部分,列出以前访问过的相关站点(显示与当前搜索词匹配的网站标题和 URL)。 匹配项会突出显示。 可以选择匹配项进行搜索。 “快速选择”菜单显示在该菜单底部,用于快速访问您的首选搜索提供程序。

Internet Explorer 8 支持搜索提供程序显示可视建议。 搜索提供程序可以提供小图像和文本,或仅仅提供可以与常规文本建议混合使用的图像。 下图显示了搜索词“Xbox”的视觉和文本建议。

Xbox 视觉和文本搜索建议。
图 7:Xbox 视觉和文本搜索建议

此外,搜索提供程序可以对搜索词提供即时应答。 通过即时应答,提供程序可以直接提供您正在查找的信息,而不是提供搜索结果页面。 这可以提高您的搜索效率。

使用加速器进行搜索

Internet Explorer 8 新引入了加速器的概念。 使用加速器可以从页面上的任何位置访问服务提供程序。 每次向列表中添加搜索提供程序时,Internet Explorer 8 都会自动将其转换为加速器。 若要使用此功能,请突出显示您要搜索的文本,然后单击出现的加速器图标 Cc848862.ie8_accelerators_icon.gif。 将显示您已安装的 Web 服务的精简列表。 其中有您的默认搜索提供程序。 若要使用其他搜索提供程序,请单击“更多加速器”。 下图显示了展开的“更多加速器”菜单。

显示可用 Web 服务的“更多加速器”菜单
图 8:显示可用 Web 服务的“更多加速器”菜单。

加速器的另一个好处是能够预览搜索结果。 如果您的搜索提供程序支持搜索预览,则只需选择网页上的一些文本,单击加速器图标,然后将鼠标移至搜索提供程序名称(您可能需要打开“更多加速器”列表才能找到该名称)上,便会出现预览窗口,其中包含所选词语的搜索结果。 这样便可以更加方便快速地使用已安装的搜索提供程序进行搜索。 若要了解有关加速器的更多信息,请参见文章 OpenService 加速器开发人员指南(可能为英文网页)。

在此页上查找

“在此页上查找”功能是 Internet Explorer 8 中的另一项用户体验改进。若要开始搜索,请单击“快速选择”菜单右侧的“查找”选项,或使用快捷键 Ctrl+F。 “在此页上查找”功能会使用即时搜索框中的搜索词搜索当前页面。 如下面的屏幕快照所示,会突出显示页面上的所有匹配,并选中第一个匹配项。 还会显示页面上的匹配数量。

“在此页上查找”功能。
图 9: “在此页上查找”功能

提示和技巧

还有一些上面未介绍的其他功能和提示。

  • 可以删除搜索历史记录。 可以从历史记录列表中删除以前的搜索词和历史记录页面。 如果您不希望拼错的词出现在自动完成部分中,则这会十分有用。 随着您在地址栏或即时搜索框中键入,搜索建议会随同自动完成和历史记录建议一起显示。 将鼠标移至要从自动完成或历史记录列表中删除的项上,该项旁会出现一个 X,如下图所示。 单击 X 可从列表中删除该项。
    从历史记录列表中删除项
    图 10:从历史记录列表中删除项
  • 可以从地址栏启动搜索。 在使用地址栏时,将使用您的当前搜索提供程序提供搜索建议;然而,搜索由默认搜索提供程序执行。 若要从地址栏启动搜索,请以 ? 作为开头, 后跟您的搜索词。 例如,若要搜索 xbox,请键入 ? xbox。 如果您的当前搜索提供程序提供有关 xbox 的搜索建议,则会看到这些建议列出。 选择某个项或按 Enter 会使用默认搜索提供程序执行搜索。
  • 可以重新调整即时搜索框的大小。 若要重新调整即时搜索框的大小,请将指针移动至即时搜索框的左边缘。 水平指针出现时,拖动可重新调整即时搜索框的大小。

Web 开发人员搜索功能

搜索站点现在可以宣传搜索提供程序,从而使用户可以直接从 Internet Explorer 镶边执行搜索,而不必先导航至特定站点。 默认搜索提供程序还可用于从地址栏执行搜索。 作为在 Internet Explorer 8 中推广搜索提供程序的第一步,是让用户能够将您的网站安装为搜索框中的搜索提供程序。 为此,需要执行两个步骤。 第一步是为您的搜索提供程序创建 OpenSearch 描述(可能为英文网页)万维网链接 文件,第二步是在您的网站上公开该描述文件,以便用户可以安装该文件。

本节重点是帮助开发人员了解并利用 Internet Explorer 8 搜索功能改进用户搜索体验。 本节包括如下主题:

  • 创建 OpenSearch 描述文件
  • 推广搜索提供程序
  • 提供搜索建议
  • 获取搜索建议菜单的尺寸
  • 标识搜索引用
  • 本地化搜索建议
  • 备注

创建 OpenSearch 描述文件

在推广您的服务并向用户提供安装您的搜索提供程序的选项之前,必须先创建 OpenSearch 描述(可能为英文网页)万维网链接 文件。 OpenSearch 描述文件是小型 XML 文件,用于向 Internet Explorer 8 描述您的搜索提供程序。下表介绍了 OpenSearch 描述文件中的值。

说明
ShortName(必需) 这是搜索提供程序的名称,当选择您的提供程序时会显示在即时搜索框中。
URL(必需) 对您的搜索提供程序的基本搜索查询的 URL。 该 URL 必须是绝对 URL。
Image(可选) 指向您网站上的搜索提供程序 Favicon 文件的指针。 此图标在即时搜索框中显示在提供程序名称旁。 该图标必须为有效的快捷方式图标文件,否则会使用通用图标。 有关更多信息,请参见向网页添加快捷方式图标(可能为英文网页)文章中有关以正确格式创建图标的部分,以获取有关如何创建 Favicon 的说明。
建议 URL (JSON)(可选) 这是可以在其中检索 JavaScript 对象表示法 (JSON) 建议的 URL。
建议 URL (XML)(可选) 这是可以在其中检索基于 XML 的建议的 URL。
PreviewUrl(可选) 用于在加速器预览窗口中显示结果的 URL。

下面的示例 OpenSearch 描述文件定义您要提供的搜索服务的类型。

<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:ie="https://schemas.microsoft.com/Search/2008/">
	<ShortName>My Custom Search</ShortName>
	<Image height="16" width="16" type="image/icon">http://example.com/example.ico</Image>
	<Url type="text/html" template="http://example.com/search.aspx?q={searchTerms}&amp;source=IE"/>   
	<Url type="application/x-suggestions+json" template="http://suggestions.example.com/search.aspx?q={searchTerms}"/>
	<Url type="application/x-suggestions+xml" template="http://suggestions.example.com/search.aspx?q={searchTerms}"/>
	<ie:PreviewUrl type="text/html" template="http://suggestions.example.com/search.aspx?q={searchTerms}"/>
</OpenSearchDescription>

所有 OpenSearch 描述文件都必须包含搜索提供程序名称和搜索 URL。 如果没有这些元素,则 Internet Explorer 8 无法安装您的搜索提供程序。 所有搜索 URL 都必须在查询字符串中的某个位置包含“{searchTerms}”。 当 Internet Explorer 8 导航至此提供程序以获取搜索结果时,“{searchTerms}”会替换为用户在即时搜索框中键入的查询字符串。您应在 OpenSearch 描述文件中包含一个图标。 如果 Internet Explorer 8 无法找到“图像”属性指定的图标,则会使用通用图标 通用搜索提供程序图标 在“快速选择”菜单中表示您的搜索提供程序。

生成 OpenSearch 描述文件的快速方式是使用 Windows 搜索指南(可能为英文网页)中的小组件创建您自己的 XML 文件。 按照该小组件中的说明进行操作,然后从步骤 5 单击“查看 XML”链接。该小组件会创建类似于以上代码段的 XML 语法。 将输出保存到一个 XML 文件,然后将该文件上载到您的 Web 服务器。 确保您的 XML 文件有效,并且您 URL 中的“&”字符进行了编码。

注意  小组件仅生成基本 XML 文件,您可以进行使用和自定义。 然而,它并不生成任何图标或建议 URL。 您必须自己添加这些内容。

将搜索建议添加到 OpenSearch 描述文件

在 Internet Explorer 8 中,搜索提供程序可以向用户提供建议。 通过使用搜索建议,用户可以创建更好的搜索词并更快地查找他们需要的内容。 若要为 JSON 和 XML 格式提供搜索建议,请将以下元素添加到您的描述文件中。

<Url type="application/x-suggestions+json" template="http://suggestions.example.com/search.aspx?q={searchTerms}"/>
<Url type="application/x-suggestions+xml" template="http://suggestions.example.com/search.aspx?q={searchTerms}"/>

在添加其他 URL 元素时,确保先列出“text/html”类型。 这是为了实现向后兼容性。 后跟的其他类型可以采用任何顺序。 默认情况下,如果搜索建议不可用或早期版本不支持搜索建议,则 Internet Explorer 使用“text/html”的 URL 作为通用搜索 URL。 然而,当 XML 和 JSON 的 URL 都存在时,Internet Explorer 8 会使用 XML 建议 URL。

注意  如果在用户添加您的搜索提供程序时,该提供程序尚不支持建议,则用户必须再次添加您的搜索提供程序。 Internet Explorer 8 会检测到您的搜索提供程序已安装,但现在可提供建议。 “添加搜索提供程序”对话框会显示“升级提供程序”按钮,并启用搜索建议的对应复选框。

支持搜索预览

安装的所有搜索提供程序都会自动转换为加速器。 因为加速器支持预览,所以使您也可以通过向 OpenSearch 描述文件添加 PreviewUrl 来支持搜索预览,如下所示。

<ie:PreviewUrl type="text/html" template="http://suggestions.example.com/search.aspx?q={searchTerms}/>

在将此元素添加到您的 OpenSearch 描述文件后,您可以提供搜索结果页面的轻型视图。 当用户选择网页上的一些文本,单击加速器图标并将鼠标移至您的搜索提供程序名称之上时,预览会显示在 320 x 240 的窗口中。 有关加速器和预览功能的更多信息,请参见 OpenService 加速器开发人员指南(可能为英文网页)上的文章。

注意  ie:PreviewUrl 使用的是由 Internet Explorer 的命名空间声明提供的命名空间。 在使用此功能时,请务必在您的 OpenSearchDescription 标记中定义此声明: xmlns:ie="https://schemas.microsoft.com/Search/2008/"。

推广搜索提供程序

在创建您的 OpenSearch 描述文件后,便可以向用户推广您的服务。 推广搜索提供程序的主要方法有两种。 第一种方法是向用户提供指向您的描述文件的链接或按钮。 用户需要执行操作来安装您的提供程序。 第二种方法是使您的提供程序可发现。 这需要您的网页顶部存在一行代码,从而使 Internet Explorer 8 可以在用户浏览您的站点时发现您的提供程序。

下面的代码用于在用户单击链接时添加搜索提供程序。

<a href="#"
   onclick="window.external.AddSearchProvider('http://www.example.com/provider.xml')"
   >Add Search Provider Example</a>

该代码调用 AddSearchProvider(可能为英文网页)方法。 window(可能为英文网页)的 external(可能为英文网页)对象提供了 AddSearchProvider 方法。 当您在 Internet Explorer 8 中从 HTML 页面运行此代码时,会显示“添加搜索提供程序”对话框。

使搜索提供程序可发现

推广搜索提供程序的第二种方法是使搜索提供程序可发现。 OpenSearch 规范描述如何通过将 link(可能为英文网页)元素添加到网页的 head(可能为英文网页)中来宣传搜索提供程序。 下面的代码使 Internet Explorer 8 可以发现您的搜索提供程序。

<link title="My Provider" rel="search"
   type="application/opensearchdescription+xml"
   href="http://www.example.com/provider.xml">

rel(可能为英文网页)属性必须为“search”,type(可能为英文网页)必须为“application/opensearchdescription+xml”。 title(可能为英文网页)的值显示在即时搜索框下拉菜单中。 href(可能为英文网页)属性包含一个绝对或相对 URL,该 URL 指定 OpenSearch 描述文件的位置。

当页面在 Internet Explorer 8 中加载时,即时搜索框上的下拉箭头会变为橙色,指示已将新搜索提供程序添加到下拉菜单中。 将列出三个最新的可发现搜索提供程序;必须先安装这些提供程序,之后才能在列表中包含其他提供程序。 当用户浏览至其他域时,会删除以前发现的搜索提供程序。 用户在将新提供程序添加到其列表中之前,可先试用这些提供程序。 当用户决定安装搜索提供程序时,会显示“添加搜索提供程序”对话框。

提供搜索建议

  • 使用 JSON 建议格式
  • 使用 XML 建议格式
  • 提供可视建议
  • 处理响应错误

从 Internet Explorer 8 开始,即时搜索框支持搜索建议。 通过搜索建议,随着用户在搜索框中键入,Internet Explorer 8 可以使用当前查询字符串向您的搜索提供程序发送请求,而您可以提供建议,使用户能够创建更好的搜索词。 Internet Explorer 8 支持两种搜索建议格式: JSON 格式和 XML 格式。 JSON 格式支持基于文本的搜索建议,这些建议可以通过描述和 URL 进行扩充。 XML 格式支持可用于 JSON 建议的所有内容,并进一步支持可视建议和节标题。 在此文章中可以找到有关 XML 搜索建议格式的更多详细信息: XML 搜索建议格式规范(可能为英文网页)。

注意  本节仅涵盖各个建议响应的格式设置。 若要完全支持搜索建议,您必须生成这些建议,并在每次请求时提供正确的建议。 由于所支持建议的此部分特定于每个提供程序,因此此处不予讨论。

使用 JSON 建议格式

JSON 搜索建议作为数组的 Microsoft JScript 数组返回。 该数组包含四个值:

说明
查询字符串(必需) 请求的搜索词。 如果浏览器请求了“xbox”的建议,则查询字符串为“xbox”。 返回数组中的查询字符串可确保返回的建议对应于请求的搜索词。
完成数组(必需) 给定查询字符串的建议。
描述数组(可选) 备用字符串,提供有关给定完成内容的其他信息或上下文。
查询 URL 数组(可选) 应在用户选择某个给定建议时使用的 URL 的列表。 这会将用户带到 URL(而不是搜索结果页面),从而可用作搜索词的即时应答。

JSON 响应必须返回查询字符串和完成数组中的搜索建议。 下面是一个简单 JSON 响应的示例,其中省略了描述和查询 URL。

["xbox",
	["Xbox 360", "Xbox cheats", "Xbox 360 games"]]

注意  最多可同时显示十个搜索建议。 添加描述、视觉效果和节将限制可以提供的建议数量。 应在完成数组的开头发送最具相关性的建议,这十分重要。

为了帮助用户创建更好的搜索词,可以随建议一起提供描述。 查询 URL 可以采用即时应答的形式提供。 当提供查询 URL,并且用户单击该建议时,Internet Explorer 8 会直接将用户带到该查询 URL,而不是带到搜索结果页面。 下面是一个详细 JSON 响应的示例。

["xbox",
	["Xbox 360", "Xbox cheats", "Xbox 360 games"], 
	["The official Xbox website from Microsoft", "Codes and walkthroughs", "Games and accessories"],	
	["https://www.xbox.com","http://www.example.com/xboxcheatcodes.aspx", "http://www.example.com/games"]]

在此 JSON 响应中,第一个搜索建议由以下元素组成:

  • 第一个数组中的第一个元素(“Xbox 360”)
  • 第二个数组中的第一个元素(“The official Xbox website from Microsoft”)
  • 第三个数组中的第一个元素(“https://www.xbox.com”)。

上面的响应将产生以下结果:

JSON 搜索建议。
图 11:JSON 搜索建议

使用 XML 建议格式

上面的 JSON 响应可以采用 XML 建议格式进行表示,如下例所示。 此示例包含的建议响应与上面的 JSON 建议中相同,并且会产生完全相同的结果。

<?xml version="1.0"?>
<SearchSuggestion xmlns="https://schemas.microsoft.com/Search/2008/suggestions">
    <Query>xbox</Query>
    <Section>
	<Item>
		<Text>Xbox 360</Text>
		<Description>The official Xbox website from Microsoft</Description>
		<Url>http://www.xbox.com</Url>
	</Item>
	<Item>
		<Text>Xbox cheats</Text>
		<Description>Codes and walkthroughs</Description>
		<Url>http://www.example.com/xboxcheatcodes.aspx</Url>
	</Item>
	<Item>
		<Text>Xbox 360 games</Text>
		<Description>Games and accessories</Description>
		<Url>http://www.example.com/games</Url>
	</Item>
    </Section>
</SearchSuggestion>

JSON 建议格式不允许在建议菜单中指定节标题。 在 Internet Explorer 8 中,节标题是您的搜索提供程序的名称加上“Suggestions”一词。 例如,如果您的搜索提供程序名为“Joe's Search”,则您建议的标题为“Joe's Search Suggestions”。 在下面的示例中,搜索提供程序名为“My Custom Search”,标题显示为“My Custom Search Suggestions”。 如果您要在多个节中组织您的建议,请使用 XML 建议格式。 除了节标题,XML 建议格式还支持可视建议。 在此文章中可以找到有关 XML 搜索建议格式的更多详细信息: XML 搜索建议格式规范(可能为英文网页)。

XML 搜索建议支持的功能与 JSON 搜索建议相同,另外还支持 JSON 中没有的其他功能。 这些其他功能包括:

  • 自定义建议节的标题。
  • 跨多个节分隔符拆分建议。
  • 包含可视建议。

若要自定义节标题,您可以将“title”属性添加到 Section 元素,也可以添加分隔符。 分隔符可以有标题,也可以没有标题。 下面的示例为“My Text Suggestions”添加一个分隔符,并添加另一个没有标题的分隔符。

<?xml version="1.0"?>
<SearchSuggestion xmlns="https://schemas.microsoft.com/Search/2008/suggestions">
    <Query>xbox</Query>
    <Section>
	<Separator title="My Text Suggestions"/>
	<Item>
		<Text>Xbox 360</Text>
		<Description>The official Xbox website from Microsoft</Description>
 		<Url>http://www.xbox.com</Url>
	</Item>
	<Item>
		<Text>Xbox cheats</Text>
		<Description>Codes and walkthroughs</Description>
		<Url>http://www.example.com/xboxcheatcodes.aspx</Url>
	</Item>
	<Item>
		<Text>Xbox 360 games</Text>
		<Description>Games and accessories</Description>
		<Url>http://www.example.com/games</Url>
	</Item>
	<Separator />
	<Item>
		<Text>xbox 360 lowest price</Text>
	</Item>
	<Item>
		<Text>xbox 360 news</Text>
	</Item>
    </Section>
</SearchSuggestion>

上面的代码将产生下面的结果。

包含自定义标题和节分隔符的 XML 搜索建议。
图 12:包含自定义标题和节分隔符的 XML 搜索建议

提供可视建议

搜索建议通常包含文本建议或用户可能要搜索的相关词条。 在 Internet Explorer 8 中,搜索建议的概念进行了扩展,现在包括查询字符串、链接或可视建议。 可视建议包括图像。 您的搜索提供程序可以提供图像及文本,或仅提供图像作为用户搜索词的搜索建议。 若要将可视建议添加到您的响应中,请将 Image 元素添加到该建议的 Item 元素。 还请务必指定图像的宽度和高度尺寸。 例如,若要为搜索词“Xbox”提供可视建议,可以返回以下内容:

 <Separator title="My Visual Suggestions" />
  <Item>
  	<Text>Xbox 360 Game Consoles</Text>
  	<Description>Game console systems and packages at a great deal.</Description>
  	<Image source="http://www.example.com/xboxconsole.jpg" alt="Xbox 360 Consoles" width="75" height="75"/> 
  	<Url>http://www.example.com/</Url>
  </Item>
  <Item>
  	<Text>Xbox 360 Wireless Controller</Text> 
  	<Image source="http://www.example.com/xboxcontroller.jpg" alt="Xbox 360 Wireless Controller" width="75" height="75"/> 
  </Item>
  <Item>
  	<Text>Xbox 360 Live Games</Text> 
  	<Image source="http://www.example.com/live.jpg" alt="Xbox 360 Live Games" width="75" height="75"/> 
  	<Url>http://www.example.com/games.aspx?q="Xbox 360"</Url> 
  </Item>

上面的代码将产生以下结果。

Xbox 可视建议。
图 13:Xbox 可视建议

此示例在两个建议中提供了 URL。 可通过在 Internet Explorer 8 中单击 URL 使用户直接进入其指定的页面。 如果未提供 URL,则 Text 元素的值(“Xbox 360 Wireless Controller”)用作搜索词。 如果您要提供不包含任何文本或描述的可视建议,则必须提供 URL 才能使 Internet Explorer 8 知道将用户带到什么位置。

默认情况下,如果您一起提供图像和文本,则文本在图像旁垂直居中。 通过将 align 属性值设置为“top”、“middle”或“bottom”,可以指定 Text 元素和 Description 元素相对于图像的文本对齐方式。

若要对齐您的文本,请将 align 属性添加到您的 image 元素。 下面的示例将 align 属性设置为“top”。

<Image source="http://www.example.com/xboxconsole.jpg" alt="Xbox 360 Consoles" width="75" height="75" align="top"/> 

处理响应错误

在您提供搜索建议时,有时您对搜索词可能没有任何建议,或是您可能无法识别搜索词。 在这种情况下,您仍然需要发送回有效的 XML 响应,否则您的用户会收到消息,通知发生了错误。 若要避免出现此消息,请在您对搜索词没有任何建议时发送回有效的 XML 响应。 下面的代码段对搜索词 xbox 发送不含任何建议的响应。 此响应将显示“No results.”消息。

<?xml version="1.0"?>
<SearchSuggestion xmlns="https://schemas.microsoft.com/Search/2008/suggestions">
    <Query>xbox</Query>
</SearchSuggestion>

对于 JSON 响应,将返回以下内容:

 ["xbox"] 

除了对搜索词没有任何建议,您还可能遇到以下情况:您知道建议存在,但是仍然收到错误消息。 在这种情况下,请检查请求的编码。 默认情况下,尽管使用 HTTP GET 请求方法,但会使用 UTF-8 对搜索词进行编码。 这意味着,如果用户键入任何带重音符的字符,则这些字符会编码为对应的 ASCII(文本)字符。 例如,如果您的搜索词为 café,则发送给您的搜索词为 q=caf%c3%a9,其中带重音符的 é 已编码为 ASCII 字符 %c3%a9。

注意  搜索提供程序必须使用 HTTP GET 请求方法;不支持 POST 请求方法。

获取搜索建议菜单的尺寸

在提供可视建议时,您应包含图像的高度和宽度。 如果您未包含这些值,则 Internet Explorer 8 会为图像分配默认空间,并缩放图像以适应该空间。 在此情况下,空间的默认大小为一行文本的在垂直方向的空间。

即时搜索框可以调整大小,因此搜索建议下拉菜单的尺寸可能不同。 若要找出搜索建议菜单的尺寸,您可以将返回搜索建议下拉菜单尺寸的参数添加到 OpenSearch 描述 URL 中。 可用参数如下所述。

参数 说明
{maxWidth} 下拉菜单的宽度(以像素为单位)。
{sectionHeight} 整个建议节的高度。
{rowHeight} 单行文本的高度,等同于一行文本。

下面的示例演示添加到 OpenSearch 描述文件 URL 的这些参数。

<Url type="application/x-suggestions+xml" 
	template="http://suggestions.example.com/search.aspx?q={searchTerms}&amp;
	maxwidth={maxWidth}&amp;rowheight={rowHeight}&amp;sectionHeight={sectionHeight}" 
/>

下图标识每个参数表示的区域。

搜索建议菜单参数
图 14:搜索建议菜单参数

标识搜索引用

从 Internet Explorer 7 开始,支持 OpenSearch 引用扩展(可能为英文网页)万维网链接。 当用户启动搜索时,Internet Explorer 会将 referrer 属性添加到搜索查询中,用于指示搜索是由即时搜索框还是地址栏启动的。 如果搜索由即时搜索框启动,则 referrer 属性设置为 IE-SearchBox。 如果搜索从地址栏启动(通过收藏夹或直接键入),则 referrer 属性设置为 IE-Address。

本地化搜索建议

如果您采用多种语言提供服务,则可以通过将“{Language}”属性添加到您的查询字符串,确定发送哪些语言的本地化建议。 下面的示例演示如何从用户接收语言信息,以处理本地化请求:

<Url type="application/x-suggestions+xml" 
	template="http://suggestions.example.com/search.aspx?
	q={searchTerms}&amp;language={Language}" 
/>

当 Internet Explorer 请求建议时,会将“{Language}”替换为 Internet Explorer 接受的语言,该语言在用户的系统区域设置中进行定义。 用户的系统区域设置可以从控制面板进行设置,还可以通过“Internet 选项”对话框从 Internet Explorer 的语言设置进行设置。

注意  有关可能影响您区域设置响应的字符编码的更多信息,请参见上面的“处理响应错误”一节。

备注

请谨记以下指导原则。

  • 网站无法自动启动“添加搜索提供程序”对话框。 该对话框被锁定(锁定方式与弹出窗口阻止程序锁定网站的方式相同),只能作为用户操作的直接结果进行启动。
  • 标题应简短,最好不超过 16 个字符。 此字符串由即时搜索框使用。 如果标题长于搜索框,则可能会被截断。
  • 链接标记中的标题应与 XML 描述文件使用的标题相同。 这些字符串必须匹配,以便使搜索发现功能识别出某提供程序已安装,从而不使即时搜索框下拉箭头变为橙色,已安装的提供程序也不会将自身添加到已发现提供程序列表之中。
  • 当用户还原默认 Internet Explorer 设置时,所有自定义搜索提供程序都将删除。
  • 如果您使用脚本添加提供程序,则还可能需要调用 IsSearchProviderInstalled(可能为英文网页)帮助器方法,以检查该提供程序是否已安装。
  • 当您创建描述文件时,请确保该文件具有有效的 XML 语法,查询字符串中的所有字符都进行了编码,并且所有“&”都转义为“&amp;”。
  • 因为用户可以调整即时搜索框的大小,所以您可以通过在 XML 描述文件 URL 中添加参数,来查询 Internet Explorer 8 以返回搜索建议下拉菜单尺寸。

相关主题