dySE:一个 Java 搜索引擎的实现,第 1 部分: 网络爬虫
2010-07-30 00:00:00 来源:WEB开发网核心提示: 在介绍搜索引擎的整体结构之前,我们借鉴《计算机网络——自顶向下的方法描述因特网特色》一书的叙事方法,dySE:一个 Java 搜索引擎的实现,第 1 部分: 网络爬虫(2),从普通用户使用搜索引擎的角度来介绍搜索引擎的具体工作流程,自顶向下的方法描述搜索引擎执行过程:用户
在介绍搜索引擎的整体结构之前,我们借鉴《计算机网络——自顶向下的方法描述因特网特色》一书的叙事方法,从普通用户使用搜索引擎的角度来介绍搜索引擎的具体工作流程。
自顶向下的方法描述搜索引擎执行过程:
用户通过浏览器提交查询的词或者短语 P,搜索引擎根据用户的查询返回匹配的网页信息列表 L;
上述过程涉及到两个问题,如何匹配用户的查询以及网页信息列表从何而来,根据什么而排序?用户的查询 P 经过分词器被切割成小词组 <p1,p2 … pn> 并被剔除停用词 ( 的、了、啊等字 ),根据系统维护的一个倒排索引可以查询某个词 pi 在哪些网页中出现过,匹配那些 <p1,p2 … pn> 都出现的网页集即可作为初始结果,更进一步,返回的初始网页集通过计算与查询词的相关度从而得到网页排名,即 Page Rank,按照网页的排名顺序即可得到最终的网页列表;
假设分词器和网页排名的计算公式都是既定的,那么倒排索引以及原始网页集从何而来?原始网页集在之前的数据流程的介绍中,可以得知是由爬虫 spider 爬取网页并且保存在本地的,而倒排索引,即词组到网页的映射表是建立在正排索引的基础上的,后者是分析了网页的内容并对其内容进行分词后,得到的网页到词组的映射表,将正排索引倒置即可得到倒排索引;
网页的分析具体做什么呢?由于爬虫收集来的原始网页中包含很多信息,比如 html 表单以及一些垃圾信息比如广告,网页分析去除这些信息,并抽取其中的正文信息作为后续的基础数据。
在有了上述的分析之后,我们可以得到搜索引擎的整体结构如下图:
图 2. 搜索引擎整体结构
更多精彩
赞助商链接