如果您刚开始在Facebook搜索框(在您的个人资料的蓝色上栏中显示)中输入一个人名,那么突然间会出现一小部分秒的搜索结果,如果出现这种情况,人已经存在于你的个人资料中。Facebook搜索背后的技术
所以我只是想知道这个search.i背后是什么,我的意思是说他们使用哪个软件工具和算法。
我知道,除了Facebook以外,没有人可以正确解释这就是为什么我只是要求给我一个关于这个的想法。
我相信他们正在使用开源的东西。
如果您刚开始在Facebook搜索框(在您的个人资料的蓝色上栏中显示)中输入一个人名,那么突然间会出现一小部分秒的搜索结果,如果出现这种情况,人已经存在于你的个人资料中。Facebook搜索背后的技术
所以我只是想知道这个search.i背后是什么,我的意思是说他们使用哪个软件工具和算法。
我知道,除了Facebook以外,没有人可以正确解释这就是为什么我只是要求给我一个关于这个的想法。
我相信他们正在使用开源的东西。
答案是自动完成 Ajax表单,但这不是真正的问题。这里的关键问题是您可以在文本字段中搜索多快。 Facebook分成两部分。首先他们搜索你的朋友的名单,这是一个缓存的,相对较少的文件,其中包含100到1000个条目。这很快。另一件事是在所有Facebook上搜索一个名字,这意味着我猜测有十亿个名字。这有点棘手,但我想他们已经将它们拆分并用字母或字母组合索引。例如:
// 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个字母,他们已经开始做了搜索,但没有1个十亿行,但在你的3级的朋友一个有限的子集,每次大概增加了。
可能是你的查询不会与整个表相比,也有一定的缓存水平或重新计算查询大多数常见的名字。
这是根据技术。在技术方面看看Solandra,对Cassandra的顶部的搜索引擎构建其Facebook正在使用,虽然我不能确认这是他们使用的是什么,只是给你一个研究方向。
我假设底层技术是AJAX,有一些缓存机制可以提高您的朋友列表中的配置文件的性能。
相关:[如何聪明的搜索是如此之快在facebook](http://stackoverflow.com/questions/5027933/how-come-smart-search-is-so-fast-in-facebook) –