现在的位置: 首页 老蛇阅读 >正文

谷歌工程师透露Google Instant幕后技术难题

北京时间9月10日消息,据国外媒体报道,谷歌周三宣布推出即时搜索服务Google Instant后,谷歌工程师本·戈梅斯(Ben Gomes)周四在该公司官方博客中发表博文,进一步披露了谷歌技术团队在开发Google Instant过程中所遇到的多项技术挑战。

谷歌周三称,利用Google Instant服务,用户在输入搜索关键词的同时,无需点击搜索按钮,便可查看即时动态显示的不同搜索结果,以全面加快用户的搜索速度。

谷歌搜索产品和用户体验副总裁玛丽莎·梅耶尔(Marissa Mayer)周三在一则博文中透露,Google Instant使用了一系列新技术,其中包括新的缓存系统、搜索结果适应性控制(涉及向用户实时返回哪些搜索结果)以及新的页面渲染优化技术(涉及浏览器能够与Google Instant服务保持同步)等。

而戈梅斯在周四的博文中,则透露了Google Instant开发过程中所遇到的诸多技术难题,其中包括核心设计、服务架构及团队协同工作等。

以下为戈梅斯周四所撰写博文全文:

昨天(周三)我们介绍了Google Instant服务。利用该服务,用户在键入关键词的同时,搜索引擎会立即返回搜索结果,从而使搜索活动更为迅速并提高互动性。就像我们已对谷歌地图(Google Maps)和Gmail电子邮件服务已采取的改进措施一样,通过Google Instant服务,我们将搜索活动由静态的HTML页面转化成AJAX应用程序。对于Google Instant的工作机制,我们已在昨天的博文中进行了阐述,但我们今天想在此披露一下Google Instant开发过程中所遇到的一些技术难题,如核心设计、服务架构等方面的挑战。

设计挑战:提高相关性,降低离散性

我们设计方面的主要挑战是:如何使用户不受干扰情况下,而能够注意到相关搜索结果。我们当时意识到,需要进行高强度的测试,才能找到符合要求的设计。为此我们经历了原型产品设计、可用性研究(在谷歌社区进行了相应测试)、内部试用(让谷歌员工参与测试)和搜索试验(让小部分谷歌用户参与测试)等阶段。

在我们初期设计的原型产品中,部分产品的性能表现并不尽如人意。举例来说,在一项原型产品中,我们试图在向用户返回搜索结果之前,会等待用户停止键盘输入活动,但结果发现这种思路实际上行不通。我们意识到,即时搜索的处理速度应该很快才行。

我们还曾考虑使用其他用户界面,即把用户不同的关键词返回结果杂揉到一起。但结果表明,这种杂揉到一起的用户界面在使用过程中,将使用户很难在键入关键词过程中加以识别。于是我们改变了思路,使用户界面是基于用户的单一搜索活动。我们将两项功能混合到一起:首先,在搜索框中以灰色文本方式预测用户的搜索结果;其次,在用户输入关键词过程中,最上面一条预测结果会随时变化。

在用户参与的测试中,他们能够迅速找到与谷歌互动的新途径:不要停止键入活动,直到灰色文本符合自己的查询需求为止,然后再查看搜索结果。我们的测试结果表明,绝大多数用户并没有觉得Google Instant与谷歌以前常规搜索服务存在任何差异,而只是觉得处理过程更快。我们对此感到非常惊讶。

架构挑战:查询请求会增加5~7倍的搜索结果页面

过去10多年以来,我们一直在努力提高谷歌搜索的性能和处理速度,并发现衡量标准应该以秒来计算。我们来到公司架构团队并对他们说:“我们希望在Google Instant的每次查询请求中,搜索引擎能够提供的搜索结果页面数量,达到常规搜索相应页面的5到7倍。”对于我们的这种想法,开始他们觉得不可理喻,但后来他们仍然还是提出了解决方案!要知道,在Google Instant之前,谷歌每天要处理10亿条以上的查询要求,而我们的系统已经经过优化,目的是使这些搜索活动能够在最短时间内完成(通常不到四分之一秒)。我们应该怎样做,才能在系统不崩溃或处理速度不减慢前提下,而处理如此海量的查询请求?

其中最简单的解决方案是:大幅增加服务器的空间。但我们希望通过更为智能的方式来解决该问题。我们确实也增加了后台空间,但我们同时也采取了不同的手段,使Google Instant能够有效处理大量查询请求。在这些手段中,不少与技术措施有关,以下为一些具体例子:

- 我们部署了新的缓存系统,用以处理高速度的查询要求,同时连续性地抓取网络内容,并为这些内容重新建立索引。

- 我们将用户状态数据放入后台当中,以追踪已返回给用户的搜索结果。如此一来,我们就能避免向用户再次发送那些已经发送的搜索结果。

- 我们对页面渲染JavaScript代码进行了优化,使用户浏览器能够保持与Google Instant搜索结果的同步。

总而言之,通过上述技术手段,使我们向用户提供Google Instant服务的同时,又能保持搜索活动的快速性。

协调工作

在Google Instant开发工作将近结束时,我们将参与开发的核心技术团队集中到两个大房间当中。然后我们开始每天的商讨会(50人以上)。在经过艰苦努力后,我们都怀着激动的心情等待Google Instant即将发布。但从某种程度上讲,推出Google Instant服务,只是算是我们互动搜索服务的开始。我们将继续对产品进行调整,并希望在收集到用户反馈意见之后,使Google Instant性能能够进一步完善。虽然Google Instant意味着搜索技术的一次重大变革,但我相信,我们也会回顾过去,并对以前的搜索技术感到无比惊奇。