谷歌使用什么算法使Chrome浏览器的地址栏充当许多网站的默认搜索栏?

use*_*659 14 address-bar google-chrome google-search searchbar

我想知道谷歌使用什么算法使Chrome浏览器的地址栏充当SO,Quroa等许多网站的默认搜索栏,但不适用于facebook,metastackoverflow等.

例如,如果要在stackoverflow中搜索主题,可以在chorme中执行此操作.

在此输入图像描述

搜索结果将直接带您进入stackoverflow页面.即

在此输入图像描述

如果您选择quora.com在chrome的地址栏中进行搜索,也会发生同样的情况.但是,如果您facebook.com在地址栏和许多其他具有搜索栏的网站中进行搜索,则不会发生这种情况.

这是怎么回事?谷歌使用什么算法来实现这一目标?

希望我对我的问题很清楚?任何帮助,将不胜感激.

小智 19

此功能由所谓的OpenSearch提供支持.它允许您指定在搜索网站时应如何形成查询.您可以在这里阅读文档:http://www.opensearch.org/Home

例如,StackOverflow的HTML源代码中包含以下内容:

<link rel="search" type="application/opensearchdescription+xml" title="Stack Overflow" href="/opensearch.xml">
Run Code Online (Sandbox Code Playgroud)

如果您随后打开文件/opensearch.xml,则可以看到以下内容:

<?xml version="1.0" encoding="UTF-8" ?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz="http://www.mozilla.org/2006/browser/search/">
  <ShortName>Stack Overflow</ShortName>
  <Description>Search Stack Overflow: Q&amp;A for professional and enthusiast programmers</Description>
  <InputEncoding>UTF-8</InputEncoding>
  <Image width="16" height="16" type="image/x-icon">http://sstatic.net/stackoverflow/img/favicon.ico</Image>
  <Url type="text/html" method="get" template="http://stackoverflow.com/search?q={searchTerms}"></Url>
</OpenSearchDescription>
Run Code Online (Sandbox Code Playgroud)

最重要的部分是指定第7行中搜索词字符串的行.


小智 2

Chrome 使用搜索引擎机制。这里描述了如何使用它 http://support.google.com/chrome/bin/answer.py?hl=en&answer=95653&topic=14676&ctx=topic

Chrome会自动识别搜索框并将相应的规则添加到搜索引擎列表中。也许它的引擎依赖于文档解析。因此,可能会添加或不添加特定站点,因为它的搜索框标记。 https://superuser.com/questions/276069/google-chrome-automatically-adding-websites-to-my-list-of-search-engines

如果你想了解解析算法,我看到的唯一方法是挖掘 chrome 源代码

此外,您可以手动编辑搜索引擎列表。

PS:而且这不仅仅是chrome的功能,其他浏览器也有类似的东西。以 Opera 为例http://tech.gaeatimes.com/index.php/archive/how-to-easily-use-manage-your-search-engines-in-opera-browser/