
Nutch 入门学习
北京邮电大学
李阳

Nutch 入门学习
目 录
1. nutch简介..................................................................................................................................1
1.1 什么是nutch.......................................................................................................................1
1.2 研究nutch的原因...............................................................................................................1
1.3 nutch的目标.......................................................................................................................1
1.4 nutch VS lucene.................................................................................................................2
2. nutch的安装与配置.................................................................................................................3
2.1 JDK的安装与配置.............................................................................................................3
2.2 nutch的安装与配置...........................................................................................................5
2.3 tomcat的安装与配置.........................................................................................................5
3. nutch初体验..............................................................................................................................7
3.1 爬行企业内部网................................................................................................................7
3.1.1 配置nutch................................................................................................................7
3.1.2 配置tomcat..............................................................................................................8
3.1.3 执行抓取命令.........................................................................................................9
3.1.4 测试结果...............................................................................................................11
3.1.5 Intranet Recrawl.....................................................................................................13
3.2 爬行全网..........................................................................................................................18
3.2.1 nutch数据集的基本组成:......................................................................................18
3.2.2 爬行"官方"网址...............................................................................................18
3.2.3 爬行中文网址.......................................................................................................22
4. nutch基本原理分析...............................................................................................................23
4.1 nutch的基本组成.............................................................................................................23
4.2 nutch工作流程.................................................................................................................23
5. nutch工作流程分析...............................................................................................................25
5.1 爬虫..................................................................................................................................25
5.1.1 工作策略...............................................................................................................25
5.1.2 工作流程分析.......................................................................................................25
5.1.3 其它.......................................................................................................................27
5.2 索引..................................................................................................................................27
5.2.1 索引主要过程.......................................................................................................27
5.2.2 工作流程分析.......................................................................................................28
5.2.3 倒排索引(inverted index).....................................................................................29
5.2.4 其它........................................................................................................................29
5.3 搜索..................................................................................................................................29
5.4 分析..................................................................................................................................30
5.5 nutch的其他一些特性.....................................................................................................31
6. nutch分析方法和工具...........................................................................................................33
6.1 Crawldb............................................................................................................................33
6.2 Linkdb..............................................................................................................................35
6.3 Segments ..........................................................................................................................35
6.4 Index.................................................................................................................................39
7. nutch分布式文件系统...........................................................................................................41
2007-8-26 北京邮电大学-李阳

Nutch 入门学习
7.1 概述..................................................................................................................................41
7.2 MapReduce...................................................................................................................41
7.3 文件系统语法..................................................................................................................42
7.4 文件系统设计..................................................................................................................42
7.5 系统的可用性..................................................................................................................43
7.6 Nutch文件系统工作架构 .............................................................................................43
8. nutch应用...............................................................................................................................45
8.1 修改源码..........................................................................................................................45
8.2 插件机制---plugin...........................................................................................................45
8.2.1 什么是plugin.........................................................................................................45
8.2.2 使用plugin的好处.................................................................................................45
8.2.3 plugin工作原理......................................................................................................46
8.2.4 编写plugin ............................................................................................................47
8.3 API接口............................................................................................................................53
8.3.1 使用Nutch API.......................................................................................................53
8.3.2 使用OpenSearch API.............................................................................................55
8.4 nutch的应用前景.............................................................................................................57
附录一: nutch的相关网站 .........................................................................................................58
附录二: 参考文献 .......................................................................................................................58
2007-8-26 北京邮电大学-李阳

Nutch 入门学习
1. nutch 简介
1.1 什么是 nutch
Nutch 是一个开源的、Java 实现的搜索引擎。它提供了我们运行自己的搜
索引擎所需的全部工具。
1.2 研究 nutch 的原因
可能有的朋友会有疑问,我们有 google,有百度,为何还需要建立自己的搜索
引擎呢?这里我列出 3 点原因:
(1) 透明度:nutch 是开放源代码的,因此任何人都可以查看他的排序算法
是如何工作的。商业的搜索引擎排序算法都是保密的,我们无法知道为
什么搜索出来的排序结果是如何算出来的。更进一步,一些搜索引擎允
许竞价排名,比如百度,这样的索引结果并不是和站点内容相关的。因
此 nutch 对学术搜索和政府类站点的搜索来说,是个好选择,因为一
个公平的排序结果是非常重要的。
(2) 对搜索引擎的理解:我们并没有 google 的源代码,因此学习搜索引擎
Nutch 是个不错的选择。了解一个大型分布式的搜索引擎如何工作是一
件让人很受益的事情。在写 Nutch 的过程中,从学院派和工业派借鉴了
很多知识:比如,Nutch 的核心部分目前已经被重新用 Map Reduce 实
现了。Map Reduce 是一个分布式的处理模型,最先是从 Google 实验
室提出来的。并且 Nutch 也吸引了很多研究者,他们非常乐于尝试新
的搜索算法,因为对 Nutch 来说,这是非常容易实现扩展的。
(3) 扩展性:你是不是不喜欢其他的搜索引擎展现结果的方式呢?那就用
Nutch 写你自己的搜索引擎吧。 Nutch 是非常灵活的:他可以被很好
的客户订制并集成到你的应用程序中,使用 Nutch 的插件机制,Nutch
可以作为一个搜索不同信息载体的搜索平台。当然,最简单的就是集成
Nutch 到你的站点,为你的用户提供搜索服务。
1.3 nutch 的目标
nutch 致力于让每个人能很容易, 同时花费很少就可以配置世界一流的
Web 搜索引擎. 为了完成这一宏伟的目标, nutch 必须能够做到:
• 每个月取几十亿网页
2007-8-26 北京邮电大学-李阳 1

Nutch 入门学习
• 为这些网页维护一个索引
• 对索引文件进行每秒上千次的搜索
• 提供高质量的搜索结果
• 以最小的成本运作
这将是一个巨大的挑战。
1.4 nutch VS lucene
简单的说:
Lucene 不是完整的应用程序,而是一个用于实现全文检索的软件库。
Nutch 是一个应用程序,可以以 Lucene 为基础实现搜索引擎应用。
Lucene 为 Nutch 提供了文本索引和搜索的 API。一个常见的问题是;我应
该使用 Lucene 还是 Nutch?最简单的回答是:如果你不需要抓取数据的话,应该
使用 Lucene。常见的应用场合是:你有数据源,需要为这些数据提供一个搜索页
面。在这种情况下,最好的方式是直接从数据库中取出数据并用 Lucene API 建立
索引。
2007-8-26 北京邮电大学-李阳 2
- 1
- 2
前往页