Google使用了哪些搜索算法/概念?

时间:2009-04-01 05:01:50

标签: algorithm full-text-search scalability

Google使用了哪些搜索算法/概念?

8 个答案:

答案 0 :(得分:13)

答案 1 :(得分:6)

索引

如果你想了解基础:

Google使用倒置的互联网索引。这意味着Google拥有根据每个页面中的条款抓取的所有网页的索引。例如, Google 一词映射到此页面,Google主页以及Google等维基百科文章。

因此,当您访问Google并在搜索框中输入“Google”时,Google会检查其在互联网上可用的所有条款的索引,并找到“Google”这一术语的条目,并在其中找到所有网页的列表将该术语引用在其中。

对于资深用户:

但是,谷歌的索引超出了你的简单倒排索引。这就是谷歌是最好的原因。 Google的抓取工具(蜘蛛)很聪明。很聪明。除了跟踪任何给定网页上的术语外,他们还会跟踪相关网页上的文字并将其链接到给定的文档。

换句话说,如果某个网页中包含 Google 这一术语,并且该网页上有链接或从其他网页链接,则该条目下的索引中可能会引用另一个网页 Google 也是如此。所有这些以及更多内容都涉及为给定查询返回给定页面的原因。

如果您想了解为什么页面按照搜索结果的方式进行排序,那么这些内容会变得更有趣。

排序

要了解基础知识:

也许搜索引擎可用于对结果进行排序的最基本算法之一称为术语频率 - 逆文档频率(tf-idf)。简而言之,这意味着您的结果将按照您在文档中搜索字词的相对重要性进行排序。换句话说,一个包含10个页面并列出 Google 一词的文档并不像具有1个页面的文档那样重要,并且列出了 Google 这个词十次。

对于资深用户:

同样,在排名结果时,Google比基本搜索引擎做的要多得多。谷歌已经实施了上述专利的PageRank算法。简而言之,PageRank通过考虑给定页面的普及/重要性来增强tf-idf算法。在这一点上,人气/重要性可以通过谷歌不会告诉我们的任何因素来判断。但是,在最基本的级别中,Google可以判断一个页面比另一个页面更重要,因为其他页面的加载和加载链接到它。

答案 2 :(得分:4)

Google's patented PigeonRank™

哇,他们最初是在7年前从周三发布的......

答案 3 :(得分:3)

PageRank Google 用于搜索引擎的链接分析算法,但该专利已分配给斯坦福大学

答案 4 :(得分:1)

我认为“大型超文本网络搜索引擎的剖析”有点过时了。 最近有关可扩展性的讨论:Challenges in Building Large-Scale Information Retrieval Systems

答案 5 :(得分:0)

Inverted indexMapReduce是大多数搜索引擎的基础(我相信)。您可以在内容上创建索引,并针对该索引运行查询以显示相关性。然而,谷歌不仅仅是一个关于每个单词出现位置的简单索引,它们还会出现它出现的次数,它出现的次数,它出现在哪里与其他单词,排序等有关。另一个简单的概念是“停止“可能包括”和“,”等等的东西(基本上是“简单”的词,经常出现,通常不是查询的焦点)。此外,他们还使用网页排名(由TStamper提及)来按相关性和重要性对页面进行排序。

MapReduce基本上只需要完成一项工作并将其分成更小的工作,并让那些较小的工作在许多系统上运行(部分用于可扩展性,部分用于速度)。如果我没记错的话,谷歌能够利用“普通”计算机来分配作业而不是服务器级计算机。由于一台计算机的处理能力达到了顶峰,许多技术正朝着云计算的方向发展,其中一项工作由许多物理机器完成。

我不确定谷歌搜索了多少,它更准确地抓取。不同之处在于,他们只是从特定的点开始,爬到可以到达的任何地方,然后重复,直到他们遇到某种死胡同。

答案 6 :(得分:0)

虽然对页面排名算法和类似的感兴趣,但我不安地发现在年初引入个人搜索(未广泛评论)似乎发生了很大变化 - 请参阅Failure of the Google Gold StandardGoogle’s Personalized Results

答案 7 :(得分:0)

这个问题无法正常回答。谷歌(和其他搜索引擎)使用的算法是他们最近的保密秘密,并且不断变化。每个正确答案可能在一个月或一年后无效。

(我知道这并没有真正回答这个问题,但重点是,没有可能的答案。)