电话:010-64681504 010-64684094
传真:010-64673024
邮箱:888@edo2008.com
手 机: 013693193565
搜素引擎系统是最复杂的计算系统之一当今主流搜索引攀服务商都是有财力、人力的大公司。即使有技术、人力、财力的保证,搜索引擎还是面临很多技术挑战。搜索引擎诞生后的十多年中,技术已经得到了长足的进步。我们今天看到的搜索结果质量与10年前相比已经好得太多了。不过这还只是一个开始,搜索引擎必然还会有更多创新,提供更多、更准确的内容。
总体来说,搜索引擎主要会面对以下几方面的挑战。
(一)页面抓取需要快而全面
互联网是一个动态的内容网络,得天有无数页面被更新、创建。无数用户在网站上发布内容、沟通联系。要返回最有用的内容,搜索引擎就要抓取最新的页面。但是由于页面数量巨大,搜索引擎蜘蛛更新一次数据库中的页面要花很长时间。搜索引擎刚诞生时,这个抓取周期往往以几个月计算。这也就是Google在2003年以前每个月有一次大更新的原因所在。
现在主流搜索引擎都已经能在几天之内更新重要页面,权重高的网站上的新文件几小时甚至几分钟之内就会被收录。不过,这种快速收录和更新也只能局限于高权重网站。很多页面几个月不被重新抓取和更新,也是非常常见的。
要返回最好的结果,搜索引擎也必须抓取尽量全面的页面,这就需要解决很多技术问题。一些网站并不利于搜索引擎蜘蛛爬行和抓取。诸如网站链接结构的缺陷、大量使用Flash、JavaScript脚本,或者把内容放在用户必须登录以后才能访问的部分,都增大了搜索引攀抓取内容的难度。
(二)海量数据存储
一些大型网站单是一个网站就有百万千万个页面,可以想象网上所有网站的页面加起来是一个什么数据。搜索引擎蜘蛛抓取页面后,还必须有效存储这些数据,数据结构必须合理,具备极高的扩展性,写入及访问速度要求也很高。
除了页面数据,搜素引擎还需要存储页面之间的链接关系及大量历史数据,这样的数据量是用户无法想象的,据说Googte有几十个数据中心,上百万台服务器。这样大规模的数据存储和访问必然存在很多技术挑战。
我们经常在搜索结果中看到,排名会没有明显原因地上下波动,甚至可能剧新一下页面,就看到不同的排名,有的时候网站数据也可能丢失。这些都可能与大规模数据存储的技术难题有关。
(三)索引处理快速有效,其可扩展性
搜索引擎将页面数据抓取和存储后。还要进行索引处理,包括链接关系的计算、正向索引、倒排索引等。由于数据库中页面数量大,进行PR之类的迭代计算也是耗时费力的。要想及时提供相关又及时的搜索结果,仅仅抓取没有用,还必须进行大量索引计算。由于随时都有新数据、新页面加入。因此索引处理也要具备很好的扩展性。
(四)查询处理快速准确
查询是普通用户唯一能看到的搜索引擎工作步骤。用户在搜索框输入关键词,单击“搜索”按钮后,通常不到一秒钟就会看到搜索结果。表面最简单的过程,实际上涉及非常复杂的后台处理。在最后的查询阶段,最重要的难题是怎样在不到一秒钟的时间内,快速从几十万、几百万,甚至几千万包含搜索词的页面中,找到最合理、最相关的1000个页面,并且按照相关性、权威性排列。
(五)判断用户意图及人工智能
应该说前4个挑战现在的搜索引擎都已经能够比较好地解决,但判断用户意图还处在初级阶段。不同用户搜索相间的关键词,很可能是在寻找不同的东西。比如搜索“樱桃”。用户到底是想了解樱桃这个水果,还是樱桃电脑?还是电影《樱桃》的信息?没有上下文,没有对用户个人搜索习惯的了解,就完全无从判断。