-
搜索引擎虽然已经发展得很不错了,但是还是面临很多技术挑战,主要有:
1、页面抓取需要快而全面
我们知道,互联网是一个动态的内容更新,每天都会有很多人在互联网上发布新内容,或者更新老内容,搜索引擎就是要从这些海量的信息中抓取最符合用户搜索意图的网页,面对已经存在的海量信息而且每秒钟还在几何级增长的信息量,搜索引擎的工作量是非常大的,搜索引擎程序每更新一次程序要花许多时间的,特别是在刚诞生的时候,更新的周期有时候竟然能达到几个月更新一次,试想一下,在几月内又会有多少网页更新和新产生了呢?这样的搜索结果往往是滞后的。要想返回最好的搜索结果,搜索蜘蛛必须抓取尽量比较全面的网页,这就需要搜索引擎解决许多技术上的问题。也是它面临的主要挑战。
2、海量存储数据
互联网上的信息是巨大的,大的几乎你不能想像,而且每天还会有许多新的信息产生,搜索引擎再抓取了这些页面后,还必须以一定的数据格式存储起来,数据结构要求合理,而且要具备非常高的扩展性。数据写入速度要很快,访问的速度也经足够快。搜索引擎除了要存储大量的页面本身信息外,为了更好的进行索引及排序,还必须要存储页面与页面之间的链接关系,页面的历史数据,以及许多索引信息。这些数据量都是非常巨大的。这样大规模的数据存储和读取肯定存在很多技术方面的挑战。
3、索引处理快速有效,而且要有可扩展性
搜索引擎将页面数据抓取和存储后,还要进行许多页面的索引处理。例如页面之间链接关系的计算,正向索引、反向索引等。例如还有谷歌的PR计算等,搜索引擎必须进行大量的索引工作才能快速的返回搜索结果,而且进行索引的过程中,还有大量的新页面在产生,搜索引擎的索引处理程序还要有比较好的扩展性。
4、查询处理快速准确
前边那几步都是在搜索引擎的后台程序运行的,而查询阶段是用户能够看到结果的一个步骤。我们在搜索引擎的搜索框中输入关键词点击搜索后,往往不到一秒钟时间搜索引擎就能够返回结果给我们,虽然表面看起来简单,可是对于搜索引擎来说,却是一个非常复杂的过程。里边牵涉很多算法。它需要在不到一秒的时间内快速从符合基本条件的网页中找到合理的页面,排名在搜索引擎的前边。我们知道,百度是最多我们可以看到76页的结果,谷歌要多一点,可以看到最多100页的结果。
文章来源:http://www.suptb.cn/转载请注明出处,谢谢
感谢 danieldu2008 的投稿