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

时间:2013-01-07 12:50:17

标签: google-chrome google-search searchbar address-bar

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

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

enter image description here

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

enter image description here

如果您选择在Chrome的地址栏中搜索quora.com,也会发生同样的情况。但如果你在地址栏和许多其他有搜索栏的网站上搜索facebook.com,就不会发生这种情况。

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

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

2 个答案:

答案 0 :(得分: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行中搜索字词字符串的行。

答案 1 :(得分: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

如果您想了解解析算法,我看到的唯一方法是挖掘铬源

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

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