您的位置:首页 > 其它

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

2013-10-04 16:42 190 查看
最近在学习Nutch搜索引擎框架,因为比较菜,所以我会将学习的内容慢慢记录下来,帮助自己记忆,也方便别人学习,希望能够与别人碰撞出思想的火花


Nutch是Apache开源社区下的一个顶级项目,是利用Java编写的一个搜索引擎框架,可以方便企业以及个人搭建自己的搜索引擎(http://lucene.apache.org/nutch)。
要写学习应用这个框架:我们需要了解构成搜索引擎所必须的几个子系统:
网页数据库
数据库跟踪网络爬虫要抓取的所有网页和它们的状态,如上一次访问的时间,它的抓取状态信息,刷新间隔,内容校验和,等等。对应于Nutch中的CrawlDB。

爬取网页清单

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

原始网页数据

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

解析的网页数据

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

连接图数据库

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

全文检索索引
这是一个传统的倒排索引,基于搜集到的所有网页元数据与抽取到的纯文本内容而建立。它是使用卓越的Lucene库(http://lucene.apache.org/java)来实现的。
附两张nutch工作流程图,参考自:http://blog.sina.com.cn/s/blog_6d0b92d90100w6p7.html







内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: