Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10054
  • 博文数量: 6
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 80
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-07 19:51
文章分类
文章存档

2018年(1)

2013年(5)

我的朋友

分类: IT业界

2013-08-11 08:13:06

作为互联网应用中最具技术含量的应用之一,优秀的搜索引擎需要复杂的架构和算法,以此来支撑对海量数据的获取、存储,以及对用户查询的快速而准确的响应。从架构层面,需要能够对百亿计的海量网页进行获取、存储、处理的能力,同时要保证搜索引擎结果的质量。如何获取、存储并计算如此海量的数据?如何快速响应用户的查询?如何使得搜索结果能够满足用户的信息需求?这些都是搜索引擎面对的技术挑战。
搜索引擎的信息源自于互联网网页,通过网络爬虫将整个互联网的信息获取到本地,因为互联网页面中有相当大比例的内容是完全相同或者近似重复内容。
在此之后搜索引擎会对网页进行解析抽取出网页主体内容,以及页面中包含的指向其他页面的链接。为了加快响应用户查询的速度,网页内容通过“倒排索引”这种高效查询数据结构来保存,而网页之间的链接关系也会予以保存。之所以要保存链接关系,是因为这种关系在网页相关性排序阶段是可利用的,通过“链接分析”可以判断页面的相对重要性,对于为用户提供准确的搜索结果帮助很大。
由于网页数量太多,搜索引擎不仅需要保存网页原始信息,还要存储一些中间的处理结果,使用平台或少量的机器明显是不现实的,google等商业搜索引擎为此开发了一整套云存储与云计算平台,使用数以万计的普通PC搭建了海量信息的可靠存储与计算 架构,以此作为搜索引擎及其相关应用的基础支撑。优秀的云存储与云计算平台已经才成为大型商业搜索引擎的核心竞争力。
上面所述是搜索引擎如何获取并存储海量的网页相关信息,这些功能因为不需要实时计算,所以可以被看做是搜索引擎的后台计算系统。搜索引擎的最重要目的是为用户准确的全面的搜索结果,如何响应用户查询并实施地提供准确结果构成了搜索引擎前台计算系统。
当搜索引擎接收到用户的查询后,首先需要对查询词进行分析,希望能够结合查询词和用户信息来正确推导用户的真正搜索意图。在此之后,首先在缓存中查找,搜索引擎的缓存系统存储了不同的查询意图对应的搜索结果,如果能够在缓存系统找到满足用户需求的信号,则可以直接将搜索结果,如果能够在缓存找到满足用户寻求的信息,搜索引擎需要调用“网页排序”模块功能,根据用户的查询实时计算那些网页是满足用户信息需求的,并排序输出作为搜索结果。而网页排序最重要的两个参考排序中,一个是内容相似性因素,即那些网页是和用户查询密切相关的;另外一个是网页重要性因素,即哪些网页是质量较好或相对重要的,这点往往乐意从链接分析的结果获得。结合以上两个考虑因素,就可以对网页进行排序,作为用户查询的搜索结果。
除了上述的子功能模块,搜索引擎的“反作弊”模块成为日益重要的功能。搜索引擎作为互联网用户的上网入口,对于网络流量的引导与分流至关重要,甚至可以说起了决定性作用。于是,各种“作弊”方式逐渐流行,通过各种手段将网页的搜索排名提高到与其网页质量不相称的位置,这会严重影响到用户的搜索体验,所以,如何自动刚发现作弊网页并对其处理,成为搜索引擎重要的组成部分。
阅读(540) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~