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

15
我想知道谷歌使用什么算法使Chrome浏览器的地址栏作为许多网站(如SO、Quora等)的默认搜索栏,但不适用于Facebook、Metastackoverflow等网站。
例如,如果您想在Stackoverflow中搜索一个主题,您可以在Chrome中这样做。

enter image description here

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

enter image description here

如果您选择在Chrome地址栏中搜索quora.com,同样的事情也会发生。但是如果您像在地址栏中搜索facebook.com和许多其他有搜索栏的网站一样进行搜索,则不会发生这种情况。
这是如何发生的?谷歌使用什么算法使这成为可能?
希望我对我的问题很清楚?任何帮助都将不胜感激。
2个回答

19

此功能由OpenSearch驱动。它允许您指定在搜索网站时应如何形成查询。您可以在此处阅读文档:http://www.opensearch.org/Home

例如,StackOverflow在其HTML源代码中有以下内容:

<link rel="search" type="application/opensearchdescription+xml" title="Stack Overflow" href="/opensearch.xml">

如果您打开/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>

最重要的部分是第7行指定搜索词字符串的那一行。


2

Chrome使用搜索引擎机制,以下是如何使用它的说明 http://support.google.com/chrome/bin/answer.py?hl=zh_cn&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/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接