15

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

例如,如果你想在 stackoverflow 中搜索一个主题,你可以在 chorme 中这样做。

在此处输入图像描述

而且搜索结果会直接带你到stackoverflow页面。IE

在此处输入图像描述

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

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

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

4

2 回答 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 行中指定搜索词字符串的行。

于 2013-01-24T07:36:41.900 回答
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/

于 2013-01-18T15:52:02.530 回答