1、页面抓取需要快而全面。现在主流搜索引擎都已经能在几天之内更新重要页面,权重高的网站上的新文件几小时甚至几分钟之内就会被收录。不过,这种快速收录和更新也只能局限于高权重网站。很多页面几个月不被重新抓取和更新,也是常见的。要返回最好的结果,搜索引擎也必须抓取尽量全面的页面,这就需要解决很多技术问题。一些网站并不利于搜索引擎蜘蛛爬行和抓取,诸如网站链接结构的缺陷,大量使用Flash,JavaScript脚本,或者把内容放在用户必须登录以后才能访问的部分,都增大了搜索引擎抓取内容的难度。
2、海量数据存储。一些大型网站单是一个网站就有百万,千万,甚至上亿页面,可以想象网上所有网站的页面加起恝依在绌来是一个什么数据量。搜索引擎蜘蛛抓取页面后,还必须有效存储这些数据,数据结构必须合理,具备极高的扩展性,写入及访问速度要求也很高。除了页面数据,搜索引擎还需要存储页面之间的链接关系及大量历史数据,这样的数据量是用户无法想象的。估计百度有三四十万台以上服务器,Google有几十个数据中心,上百万台服务器。这样大规模的数据存储和访问必然存在很多技术挑战。
3、索引处理快速有效,具有可扩展性。搜索引擎将页面数据抓取和存储后,还要进行索引处理,包括链接关系的计算,正向索引,倒排索引等。由于数据库中页面数量大,进行PR之类的迭代计算也是耗时费力的。要想提供相关又及时的搜索结果,仅仅抓取没有用,还必须进行大量索引计算。由于随时都有新数据,新页面加入,因此索引处理也要具备很好的扩展性。
4、查询处理快速准确。查询是普通用户唯一能看到的搜索引擎工作步骤。用户在搜索框输入查询词,单击“搜索”按钮后,通常不到一秒就会看到搜索结果。表面最简单的过程,实际上涉及非常复杂的后台处理。在最后的查询阶段,最重要的难题是怎样在不到一秒的时间内,快速从几十万,几百万,甚至几千万包含搜索词的页面中,找到最合理,最相关的1000个页面,并且按照相关性,权威性排列。
5、判断用户意图及人工智能。搜索引擎目前正在致力于基于对用户搜索习惯的了解,历史数据的积累,以及语义搜索技术的基础上,判断搜索意图,理解文档真实意义,返回更相关的结果。今后搜索引擎是否能达到人工只能水平,真正了解用户查询的意义和目前,让我们拭目以待。