非技术概述

本文档提供了 Firefox 地址栏的高级非技术概述,重点介绍了其显示的不同类型的结果以及如何选择这些结果。

术语

本文档使用少量专业术语,提前了解这些术语将很有帮助。

输入

地址栏的文本框组件。相反,我们使用“地址栏”来指代包含输入、视图以及根据输入中的文本确定视图中显示结果的逻辑的整个系统。

结果

视图中显示的单个项目。结果类型多种多样,包括书签、历史记录、打开的标签页和搜索建议。

视图

输入获得焦点时在输入下方打开的面板。它包含结果。

最大结果数

默认情况下,视图最多显示 10 个结果。此数字由隐藏的首选项 browser.urlbar.maxRichResults 控制。

搜索字符串

如果用户未修改输入中的文本或输入中的文本为空,则我们说用户的**搜索字符串**为空,或者换句话说,没有搜索字符串。相反,当用户修改了输入中的文本并且文本非空时,则搜索字符串即为该非空文本。

Image of the address bar input showing a URL

空搜索字符串:输入文本未修改

Image of the address bar input showing its placeholder text

空搜索字符串:输入文本为空(并且输入显示其占位符文本)

Image of the address bar input showing "porcupines" text

非空搜索字符串:输入文本已修改且非空

区分空搜索字符串和非空搜索字符串对于以下部分的理解很有帮助。

热门网站

当搜索字符串为空且用户聚焦输入时,视图将打开并显示用户的热门网站。它们与新标签页上显示的热门网站相同,只是其数量限制为地址栏结果的最大数量 (10)。如果用户拥有的热门网站少于结果的最大数量(如新配置文件中的情况),则仅显示该数量的结果。

Image of the address bar view showing top sites

新的 en-US 配置文件中的热门网站

可以通过转到about:preferences#privacy并在“地址栏”部分取消选中“快捷方式”来关闭此行为。在这种情况下,当搜索字符串为空时,视图将关闭。

搜索

当搜索字符串非空时,地址栏将执行搜索并在视图中显示匹配的结果。实际上会执行多个不同来源的独立搜索,并将每个来源的结果组合、排序并限制为最大结果数,以显示最终的结果列表。在地址栏术语中,每个来源称为**提供程序**。

每个提供程序根据搜索字符串生成一种或多种类型的结果。最常见的结果类型包括以下内容(非详尽列表)

Image of a search suggestion result with text "porcupine meatballs"

来自用户默认引擎的搜索建议(放大镜图标)

Image of a previous search result with text "porcupines"

用户之前从地址栏和搜索栏执行的搜索(时钟图标)

Image of a bookmark result with text "Porcupine - Wikipedia"

书签

Image of a history result with text "Porcupines | National Geographic"

历史记录

Image of an open tab result with text "Porcupines | San Diego Zoo Animals & Plants"

打开的标签页(切换到标签页)

Image of a remote tab result with text "Porcupine | rodent | Britannica"

远程标签页(通过同步)

地址栏如何组合和排序来自不同提供程序的结果将在下面的结果组合中讨论。

启发式结果

视图中的第一个结果是特殊的,称为**启发式**结果。当用户在搜索字符串中键入每个字符时,启发式结果会更新并自动选择,其目的是向用户显示在按下 Enter 键之前不选择(非启发式)结果时会发生什么。之所以称为启发式结果,是因为它显示了 Firefox 根据用户的搜索字符串对用户尝试执行的操作的最佳猜测。

启发式结果是通过运行一系列不同的启发式方法并选择第一个匹配搜索字符串的启发式方法来确定的。Firefox 运行的最重要的启发式方法及其顺序如下:

搜索字符串是否为…

  1. 一个万能框扩展关键字?使用万能框 API 的扩展可以通过它们被激活的关键字进行注册。

  2. 一个书签关键字?用户可以为每个书签关联一个关键字。键入书签关键字加上可选的搜索字符串并按下 Enter 键将访问该书签。

    Image of the address bar input with text "bug 1677126" and a bookmark keyword heuristic result

    键入“bug”将触发具有“bug”关键字的 Bugzilla 书签

  3. 一个应该自动填充的域名或 URL?**自动填充**是输入在用户键入书签和常用网站的域名和 URL 时完成这些域名的功能的名称。(Firefox 自动填充“到下一个斜杠”,这意味着它首先自动填充域名,然后自动填充部分路径。)

    Image of the address bar input with text "mozilla.org/" with "illa.org/" selected and an autofill heuristic result

    键入“moz”后,mozilla.org 的其余部分将自动完成

  4. 一个有效的 URL?如果是,则访问该 URL。(这包括修复常见的拼写错误,如“mozilla..org”和“mozilla.ogr”。有效 URL 基于公共后缀列表。用户还可以使用隐藏的首选项指定允许列表以支持 localhost 等域名。)

    Image of the address bar input with text "porcupine-fancy.org" and a visit heuristic result

    键入未被添加书签或不在历史记录中的 URL

  5. 最终回退到使用默认引擎执行搜索。(用户可以通过将隐藏的首选项keyword.enabled设置为 false 来选择退出此回退。在这种情况下,Firefox 将停止在上一步骤并尝试访问用户的搜索字符串,就好像它是一个 URL 一样。)

    Image of the address bar input with text "porcupines" and a search heuristic result

    键入将使用默认引擎执行搜索的字符串

结果组合

对于给定的搜索字符串,地址栏会执行多个不同提供程序的独立搜索,然后组合其结果以显示最终列表。组合和排序结果的方式称为**结果组合**。结果组合基于结果组的概念,一个接一个,每个组包含不同类型的结果。

接下来将描述默认的结果组合,从第一个结果开始。

1. 启发式结果

第一个结果始终是启发式结果。

2. 扩展万能框结果

下一组结果是由使用万能框 API 的扩展提供的结果。大多数用户从未遇到过这些结果,因为它们仅由使用此功能的扩展提供,即使如此,用户也必须键入某些扩展定义的关键字才能触发它们。此组中最多有 6 个结果。

3. 搜索建议

下一组是搜索建议。通常此组包含 6 个结果,但确切数量取决于结果组合细微差别中稍后描述的某些因素。实际上,搜索建议有三种类型

  • 用户之前从地址栏和搜索栏执行的搜索(用时钟图标表示)

    Image of a previous search result with text "porcupines"

    这是唯一一种由 Firefox 单独生成的搜索建议,无需搜索引擎的帮助。当用户使用地址栏或搜索栏(仅地址栏和搜索栏)中的引擎执行搜索时,Firefox 会存储搜索字符串,然后当用户再次开始键入它时,Firefox 会将其作为结果包含在内,以便轻松执行过去的搜索。(Firefox 不会存储在网页(如 google.com)中使用的搜索字符串。)

  • 来自用户默认引擎的建议(用放大镜图标表示)

    Image of a search suggestion result with text "porcupine meatballs"

    如果引擎提供了必要的访问点,则会从引擎中获取这些建议。这些建议的排序和总数由引擎决定。

  • Google 特定的“尾部”建议,看起来像“… foo”,这些建议用于长查询或特定查询,以帮助用户缩小搜索范围

    Image of a tail suggestion results with text "porcupine abc def" in the input and two suggestions with text "... definition " and "... defense"

    当 Google 是用户的默认引擎时,会从 Google 中获取这些建议。这些建议的排序和总数由 Google 决定。

搜索建议组通常包含两个以前的搜索,然后是四个引擎建议,但确切数量取决于匹配的先前搜索和引擎建议的数量。先前搜索的数量有限,因此它们不会占据此组的主导地位,从而允许远程建议提供内容发现优势。仅当没有其他建议时才会显示尾部建议。

用户可以通过访问about:preferences#search并取消选中“提供搜索建议”或“在地址栏结果中显示搜索建议”来选择不显示地址栏中的搜索建议。

4. 一般结果

最后一组结果是一般组,其中包含以下类型

  • 书签

  • 历史记录

  • 打开的标签页(切换到标签页)

  • 远程标签页(通过同步)

  • 赞助结果和 Firefox Suggest 结果(Firefox Suggest 功能的一部分)

此一般组在 Firefox Suggest 功能中标记为“Firefox Suggest”。

通常此组包含 3 个结果,但与搜索建议一样,确切数量取决于某些因素(请参阅结果组合细微差别)。

此组中的大多数结果首先根据其标题和 URL 与搜索字符串进行匹配,然后根据称为**频次**的指标进行排序,频次是页面访问频率和最近访问时间的组合。无论其特定类型如何,都会显示前三个结果。

这是唯一一个按频次排序的组。

接下来的几个小节将讨论该组的一些重要复杂性。最后一小节将更详细地描述频率(frecency)。

自适应历史

一般组中的前几个书签和历史结果可能来自**自适应历史**,这是一个将特定用户搜索字符串与 URL 关联的系统。(它也称为**输入历史**。)当用户输入搜索字符串并选择结果时,Firefox 会存储一条数据库记录,将该字符串与结果的 URL 关联起来。当用户再次输入该字符串或其一部分时,Firefox 会尝试显示他们上次选择过的 URL。这使得 Firefox 能够适应用户通过特定搜索字符串访问某些页面的习惯。

此机制主要独立于频率。自适应历史数据库中的 URL 具有自己的排序分数,该分数基于它们过去被使用的次数。分数每天都会衰减,以便不经常使用的搜索字符串和 URL 不会永远保留。(如果两个自适应历史结果的分数相同,则它们会根据频率进行二级排序。)

在一般组中,自适应历史结果的数量不受限制,但对于给定的搜索字符串,通常不会有很多。

打开和远程选项卡

与书签和历史记录不同,打开和远程选项卡没有“自然”频率,这意味着频率不会像下面频率中所述那样响应用户操作而更新。与搜索字符串匹配的选项卡被分配恒定的频率,以便它们可以参与一般组内的排序。打开的选项卡被分配频率 1000,远程选项卡被分配频率 1001。选择合适的频率有点像艺术,但 Firefox 已经使用这些值一段时间了。

频率

频率本身就是一个复杂的话题,但总而言之,存储在 Firefox 内部历史数据库中的每个 URL 都具有一个与其关联的数字分数,即频率。数字越大表示频率越高,频率越高的 URL 越有可能通过地址栏显示给用户。每次用户访问 URL 时,Firefox 都会将其频率增加一定的“提升”量,该量取决于访问执行方式——用户是否在地址栏中选择它、单击页面上的链接、单击历史侧边栏中的链接等。为了防止频率无限增长并惩罚一段时间内未访问过的 URL,Firefox 会随着时间的推移降低所有 URL 的频率。

有关频率的详细信息,请参阅频率算法

影响结果组成的偏好设置

about:preferences中有很多选项会影响结果组成。

用户可以通过取消选中about:preferences#search中的“提供搜索建议”或“在地址栏结果中显示搜索建议”来选择不显示地址栏中的搜索建议。(第一个复选框适用于地址栏和搜索栏,因此它充当全局切换。)

Image of the preferences UI that allows the user to opt out of search suggestions

允许用户选择不使用搜索建议的偏好设置

默认情况下,搜索建议组显示在一般结果组之前,但在about:preferences#search中取消选中“在地址栏结果中显示搜索建议在浏览历史记录之前”会产生相反的效果。在这种情况下,一般结果组通常最多包含 6 个结果,搜索建议组最多包含 3 个结果。换句话说,无论哪个组先出现,第一个组通常包含 6 个结果,第二个组包含 3 个结果。

Image of the preferences UI that allows the user to choose whether search suggestions are shown before general results

允许用户选择显示哪个组的偏好设置

about:preferences#privacy中的“地址栏”部分有几个复选框,允许更精细地控制视图中显示的结果类型。可以通过取消选中此部分中的“快捷方式”来关闭热门网站功能。

Image of the preferences UI that allows the user to choose which results are shown

允许用户选择显示哪些结果的偏好设置

结果组成细微差别

在搜索建议和一般结果组中,首先显示的组通常包含 6 个结果,另一个组包含 3 个结果。每个组中的确切数量取决于几个因素

  • 总最大结果数(由隐藏的偏好设置browser.urlbar.maxRichResults控制)。

    两个组中的总结果数会增加或减少以适应此数字,以便视图始终充满结果。

  • 扩展结果的数量。

    扩展结果组位于两个组之前,因此,如果存在任何扩展结果,则搜索建议和一般结果的可用插槽就会减少。

  • 匹配结果的数量。

    例如,搜索字符串可能只匹配一个或两个搜索建议或一般结果。

  • 另一组中的结果数量。

    第一组将尝试包含 6 个结果,第二组将尝试包含 3 个结果,但如果其中一个无法填满,则允许另一个组增长以弥补差异。

其他结果类型

上面讨论了最常见的结果类型。本节将介绍其他类型。

这些类型共有的一个重要特征是它们不属于任何组。它们中的大多数出现在视图中的特定位置。

搜索干预

搜索干预有助于用户根据其搜索字符串执行任务。有三种干预措施,每种干预措施都是通过在输入中键入特定的一组短语触发的。它们始终显示为第二个结果,在启发式结果之后。

三种干预措施是

Image of the clear intervention result with text "Clear your cache, cookies, history and more"

清除历史记录、缓存和其他数据的搜索干预

Image of the refresh intervention result with text "Restore default settings and remove old add-ons for optimal performance"

刷新 Firefox 搜索干预

Image of the update intervention result with text "The latest Firefox is downloaded and ready to install"

更新 Firefox 搜索干预

目前此功能仅限于英语地区,但正在努力构建更复杂的意图匹配平台以支持其他地区、更复杂的搜索字符串和更多类型的干预措施。

搜索提示

搜索提示告知用户他们可以直接从地址栏执行搜索。有两种搜索提示

Image of the onboarding search tip with text "Type less, find more: Search Google right from your address bar"

入门搜索提示:出现在新标签页上

Image of the redirect search tip with text "Start your search in the address bar to see suggestions from Google and your browsing history"

重定向搜索提示:出现在用户默认引擎的主页上(仅限 Google、Bing 和 DuckDuckGo)

在每种情况下,即使用户没有与地址栏交互,视图也会自动打开并显示提示。每个提示最多显示四次,用户可以通过与地址栏交互或单击“确定,我知道了”按钮来停止它们显示。

搜索引擎提供

键入单个“@”将显示搜索引擎列表。选择一个引擎将进入搜索模式

Image of the view showing search offer results

键入“@”后的搜索引擎提供

Image of the view showing search offer results with one selected

按向下箭头键选择 Google 后

搜索模式

**搜索模式**是一项功能,可将地址栏转换为特定引擎的仅搜索访问点。在搜索模式下,搜索建议是视图中唯一显示的结果,因此其结果组成与通常的组成不同。

Image of the view showing search mode

以 Google 作为所选引擎的搜索模式

即使用户已选择不使用搜索建议,Firefox 也会在搜索模式下显示建议。我们的理由是,通过进入搜索模式,用户已采取了覆盖其通常选择不使用的操作。这允许用户普遍选择不使用,但在特定时间选择使用。

搜索模式是传统搜索栏的有效替代方案,并可能为弃用它提供了一条良好的前进道路。

用户可以通过多种方式进入搜索模式

  • 选择视图底部的搜索快捷按钮

  • 键入引擎的关键字(可以在about:preferences#search中设置,内置引擎具有默认关键字)

  • 键入单个“?”后跟空格(以使用默认引擎进入搜索模式)

  • 键入单个“@”列出所有引擎,然后选择一个

  • 如果也没有显示搜索栏,则按 Ctrl+K(以使用默认引擎进入搜索模式)

要退出搜索模式,用户可以将引擎小部件上的内容退格删除或单击其关闭按钮。