Nutch第一课之搜索引擎基本子系统

最近在学习Nutch搜索引擎框架,由于比较菜,因此我会将学习的内容慢慢记录下来,帮助本身记忆,也方便别人学习,但愿可以与别人碰撞出思想的火花j_0061.gifhtml

Nutch是Apache开源社区下的一个顶级项目,是利用Java编写的一个搜索引擎框架,能够方便企业以及我的搭建本身的搜索引擎(http://lucene.apache.org/nutch)。java

要写学习应用这个框架:咱们须要了解构成搜索引擎所必须的几个子系统: 数据库

  1. 网页数据库apache

    数据库跟踪网络爬虫要抓取的全部网页和它们的状态,如上一次访问的时间,它的抓取状态信息,刷新间隔,内容校验和,等等。对应于Nutch中的CrawlDB数组

  2. 爬取网页清单网络

    网络爬虫按期刷新其Web视图信息,而后下载新的网页(之前没有抓取的)或刷新它们认为已通过期的网页。这些准备爬取的候选网页清单。对应于Nutch中的fetchlist。框架

  3. 原始网页数据ide

    网页内容从远程网站下载,以原始的未解释的格式在本地存储成字节数组。对应于Nutch中的page content。学习

  4. 解析的网页数据fetch

    网页内容用适合的解析器进行解析——Nutch为各类流行格式的文档提供了解析器,如HTML,PDF,Open Office和Microsoft Office,RSS等

  5. 链接图数据库

    对于计算基于连接(link)的网页排序(page rank)值来讲,如PageRank,这个数据库是必须的。对于Nutch记录的每个URL,它会包含一串指向它的其余的URL值以及这些URL关联的锚文本(在HTML文件的锚文本元素中获得)。这个数据库称为LinkDb。

  6. 全文检索索引

    这是一个传统的倒排索引,基于搜集到的全部网页元数据与抽取到的纯文本内容而创建。它是使用卓越的Lucene库(http://lucene.apache.org/java)来实现的。

    附两张nutch工做流程图,参考自:http://blog.sina.com.cn/s/blog_6d0b92d90100w6p7.html

163958146.gif

164139861.gif

相关文章
相关标签/搜索