Facebook搜索背后的技术

时间:2011-09-29 05:16:12

标签: facebook open-source

如果您刚开始在Facebook搜索框中输入一个人名(显示在您的个人资料中的蓝色上方栏中),那么突然会在一秒钟的搜索结果中出现,如果该人已经存在,那么他们会更快轮廓。

所以我只是想知道这个搜索背后的内容。我的意思是说他们正在使用哪种软件工具和算法。

我知道Facebook以外的任何人都无法准确解释这就是为什么我只是想让我对此有所了解。

我确信他们正在使用开源的东西。

2 个答案:

答案 0 :(得分:2)

我认为底层技术是AJAX,有一些缓存机制可以提高朋友列表中个人资料的性能。

答案 1 :(得分:2)

响应是自动填充 Ajax表单,但这不是真正的问题。这里的关键问题是您在文本字段中搜索的速度有多快。 Facebook将其分为两部分。首先,他们搜索你的朋友列表,这是一个缓存且相对很少更改的文件,包含100到1000个条目。这很快。另一件事是在所有Facebook中搜索一个名字,这意味着我猜10亿个名字。这有点棘手,但我想他们会将它们分割并用字母或字母组合索引。例如:

// search query Alice Cooper
A ... they give you a list of A like names Alina, Ana, Alice...
Al .... they limit it to Alicia, Alice, Alina ...
// and so on

可能在3个字母之后他们开始进行搜索,但不是在10亿行中,而是在你的3级朋友的有限子集中,并且每次都可能增加。

可能您的查询永远不会与整个表进行比较,并且对于大多数常用名称肯定存在缓存级别或重新计算的查询。

这是技术方面的问题。在技​​术方面,请看一下Solandra,一个建立在Facebook正在使用的Cassandra之上的搜索引擎,虽然我不能确认这是他们正在使用的,但只是为了给你一个研究方向。