我想知道Google使用什么算法来使Chrome浏览器的地址栏充当SO,Quroa等许多网站的默认搜索栏,但不适用于facebook,metastackoverflow等。
例如,如果要在stackoverflow中搜索主题,可以在chorme中执行此操作。
搜索结果将直接带您进入stackoverflow页面。即。
如果您选择在Chrome的地址栏中搜索quora.com
,也会发生同样的情况。但如果你在地址栏和许多其他有搜索栏的网站上搜索facebook.com
,就不会发生这种情况。
这是怎么回事?谷歌使用什么算法来实现这一目标?
希望我对我的问题很清楚?任何帮助将不胜感激。
答案 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&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/