本文我将模块化地展示一个搜索引擎的结构: 个模块的组织和构成!!
0. 通用搜索引擎结构
通用搜索引擎结构的说明:
(1)网页抓取模块 : 从Internet上自动获取信息
(2)预处理模块 : 文本分析和处理
(3)索引模块 : 倒排索引的建立
(4)检索模块
查询的分析 相似度的计算和排序(Ranking) 结果摘要
(5)用户接口
以下是Google的组成:
1. 引擎模块结构 (更简洁的表示)(Viso图)
2. 搜索引擎的工作流程图:
3. 网页抓取模块的工作过程:
网页抓取模块
任务: 通过Web页面之间的链接关系从Web上自动获取页面信息,常常成为Robot, Spider,Crawler;
通过抓取确保WWW有效资源的覆盖和及时更新;
Crawler:
网页抓取, 网页解析提链, 输出 page && Link
Crawler control:
是抓取模块的核心;
抓取控制、调度;
广度、特殊化、反馈;
网页采集的基本结构:
网页采集的运行过程: (处理流程图: 不太清晰啊! 以后重画!)
网页搜索算法:
网页间的连接显然是图,要遍历图的话我们首先想到的当然是广度优先算法和深度优先算法!
实际中,考虑到深度优先的具体应用的制约, 搜索引擎使用的是广度优先算法!!
广度优先 VS 深度优先 : 研究表明,广度优先方法得到的网页集合的重要性更好!
网站采集 VS 全局 URL 采集
网站采集: 一个网站一个网站采集
全局 URL 采集: 将所有 URL 放入一个 URL 池,从中使用某种策略进行选择;
网站采集在支持应用方面的灵活性更大一些, 但是采集效率可能不如全局 URL 采集;
通常的搜索引擎采用全局 URL 采集的方法。
4. 网页采集的更新策略:
A. 定期重采
一段时间以后重新采集所有的网页,全部采完以后替换原来的网页;
定期重采非常简单,但是浪费带宽,周期也长!
B. 增量采集
只按照某种策略采集那些可能新增、变化的网页, 并删除那些已经不存在的网页;
增量采集可以节省带宽,网页更新周期相对较短,但是系统的复杂性增大!!
阅读(2435) | 评论(0) | 转发(0) |