自Google Instant正式推出后,实时搜索再次被推向了一个新的高度。利用Google Instant服务,用户在输入搜索关键词的同时,无需点击搜索按钮,便可查看即时动态显示的不同搜索结果,这样大打加快了用户的搜索速度。看似简单的Google Instant,背后其实蕴藏着无数的技术难关,一起来看看Google官方对Instant技术揭秘的原文翻译:

利用Google Instant服务,用户在键入关键词的同时,搜索引擎会立即返回搜索结果,从而使搜索活动更为迅速并提高互动性。就像我们已对Google Maps和Gmail电子邮件服务已采取的改进措施一样,通过Google Instant服务,我们将搜索活动由静态的HTML页面转化成AJAX应用程序。我们在此披露一下Google Instant开发过程中所遇到的一些技术难题,如核心设计、服务架构等方面的挑战。

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

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

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

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

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

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

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

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

  • 我们部署了新的缓存系统,用以处理高速度的查询要求,同时连续性地抓取网络内容,并为这些内容重新建立索引。
  • 我们将用户状态数据放入后台当中,以追踪已返回给用户的搜索结果。如此一来,我们就能避免向用户再次发送那些已经发送的搜索结果。
  • 我们对页面渲染JavaScript代码进行了优化,使用户浏览器能够保持与Google Instant搜索结果的同步。

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

协调工作

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

作者:Mr.Chen
SEM99(www.sem99.com) - 广州SEO公司第一品牌
本文SEM99版权所有,转载请标明出处,否则将追究法律责任。