Nutch源代码学习-解读Nutch-运行,爬行过程
2011年01月30日
Nutch源代码学习(5)-解读Nutch-运行,爬行过程
2007年04月13日 星期五 16:40
Nutch是一个基于Lucene,类似Google的完整网络搜索引擎解决方案,基于Hadoop的分布式处理模型保证了系统的性能,类似Eclipse的插件机制保证了系统的可客户化,而且很容易集成到自己的应用之中。
Nutch 0.8 完全使用Hadoop重写了骨干代码,另外很多地方作了合理化修正,非常值得升级。
1.Nutch 0.8 的安装与运行
nutch 0.7.2的中文安装文档满街都是,nutch 0.8的安装文档见Tutorial (0.8) , 要注意两点:
一是 crawl命令里的urls参数从指定文件变为了指定目录, 即原来的urls 要改存到urls/foo 里。
二是 nutch-default.xml里http.agent.name属性默认为空,必须在nutch-site.xml中为该属性设值,否则会出错。
注意nutch 爬行时的信息用log4j输出在/logs 目录下了,默认不再直接输出到屏幕,除非你在配置文件里设fetcher.verbose为true。
Luke(http://www.getopt.org/luke) 是一个必备的索引阅读工具。
另外,nutch需要在unix下奔跑,如果要装在windows上,大家可以先装个cygwin。(下载它的setup.exe 在线安装很快装完)。
最后,nutch 0.8的recawl 脚本也不同了。
2.Nutch You should know
2.1 一份文档
nutch的文档不多,而且多是安装文档,要深入nutch,就必须一字不漏的阅读:
Introduction to Nutch, Part 1 Crawling 和 Introduction to Nutch, Part 2 Searching
然后就是看源码了,好在nutch的源码非常均匀,简短,没有花哨的技巧,很容易把事情看明白。
2.2 三个目录
首先理解nutch的三个数据目录:
1.crawdb,linkdb 是web link目录,存放url 及url的互联关系,作为爬行与重新爬行的依据,页面默认30天过期。
2.segments 是主目录,存放抓回来的网页。页面内容有bytes[]的raw content 和 parsed text的形式。nutch以广度优先的原则来爬行,因此每爬完一轮会生成一个segment目录。
3.index 是lucene的索引目录,是indexs里所有index合并后的完整索引,注意索引文件只对页面内容进行索引,没有进行存储,因此查询时要去访问segments目录才能获得页面内容。
2.3 爬行过程
爬行过程在Introduction to Nutch, Part 1 Crawling 里已有详细说明,或许直接看Crawl类来理解爬行的过程。
这里有一幅更直观的图:
Nutch用入口地址,地址正则表达式,搜索深度三种形式来限制
因为使用了Hadoop(下篇再讲),Nutch的代码都按照Hadoop的模式来编写以获得分布式的能力,因此要先了解一下Hadoop,明白它Mapper,Rerducer, InputFormat, OutputFormat类的作用才能更好的阅读。
1.Fetcher类, 在run()里多线程运行FetcherThread,并调用恰当的Protocol插件(支持http,ftp等协议)获取内容,调用恰当的 Parser将内容分析为文本,然后把内容放到FetcherOutput类里,最后由FetcherOutputFormat类定义写盘到 segments的过程。
2.Indexer类,应用hadoop遍历所有Segments 目录,将parseData文件序列化成ParseData类,从中获得各种资料然后调用插件进行索引,最后仍然由ouputFormat类完成写入索引的工作。
注意,如果你仅想使用Nutch的爬虫,而不是其索引功能,可以仿照Indexer重写自己的实现,比如把segments内容直接搬进数据库。
3.Nutch 每条索引记录的字段
url: 作为唯一标标识值,由BasicIndexingFilter类产生。
segment: 由Indexer类产生。Nutch抓回来的页面内容放在segments目录,lucene只会索引,不会store原文内容,因此在查询时要以 segment与url作为外键,由FetchedSegments类根据hitsDetail从segments目录获得content。
boost:优先级,由Indexer类调用插件计算产生。
title:显示标题,在BasicIndexingFilter插件中被索引和存储。
content: 主要的被搜索项,在BasicIndexingFilter插件中被索引。
2.4 搜索过程
Nutch提供了一个Fascade的NutchBean类供我们使用,一段典型的代码如下
NutchBean bean = new NutchBean(); Query query = Query.parse(args[0]); Hits hits = bean.search(query, NUM_HITS,"title",true); for (int i = 0; i
最后是八卦,Dedian同志翻译的Doug Cutting 访谈录 -- 关于搜索引擎的开发。
本页地址:http://blog.csdn.net/liyang23456/archive/2007/08/20/1751253.aspx
发表于 @ 2007年08月20日 11:38:00 | 评论( 1 ) | 编辑| 举报| 收藏
旧一篇:Plugin中心(翻译) | 新一篇:IntranetRecrawl
查看最新精华文章 请访问博客首页相关文章
Nutch version 0.8 安装向导转:nutch在Windows上的安装 step by step转:Nutch 使用 1nutch输出文件的读取Nutch 0.8笔记--Google式的搜索引擎实现(作者:江南白衣)Nutch开源搜索引擎的crawl日志分析及工作目录说明Nutch 0.8笔记--Google式的搜索引擎实现Nutch 0.8笔记 Google式的搜索引擎实现yhh95222 发表于2009年9月13日 17:01:34 IP:举报回复删除
问个问题,就是我想在索引的时候我要根据不同目录的url来把内容索引到不同的域里,应该在哪些地方修改呀? 谢谢。 发表评论表 情: 评论内容: 用 户 名:登录 注册 匿名评论 匿名用户验 证 码: 重新获得验证码
热门招聘职位【方正国际】诚招软件精英 北京+苏州+武汉【热聘】搜狐畅游全国热招开发工程师【爱立信上海】急招多媒体、核心网开发测试工程师,国际团队等你加盟!【舒适刀片】诚聘IT Programmer (VB,VBS,VBA, web development编程)【Zynga Beijing】热招各类游戏人才,与我们共建属于你的虚拟帝国【开心网】高薪诚聘各类技术人才【MediaV】技术类职位热招,欢迎应届毕业生【瀚信科技】诚聘 WINDOWS C++ WINDOWS C#中高级开发工程师【美国国家仪器】诚聘高级软件 工程师 信号处理软件部门经理【Amazon】亚马逊诚聘技术专家!【网路时代】高薪诚聘C++、.net开发工程师【Autodesk】欧特克软件(中国)诚聘软件开发,测试,研究员【方正国际】诚招软件精英 北京+苏州+武汉【热聘】搜狐畅游全国热招开发工程师【爱立信上海】急招多媒体、核心网开发测试工程师,国际团队等你加盟!【舒适刀片】诚聘IT Programmer (VB,VBS,VBA, web development编程)【Zynga Beijing】热招各类游戏人才,与我们共建属于你的虚拟帝国【开心网】高薪诚聘各类技术人才【MediaV】技术类职位热招,欢迎应届毕业生【瀚信科技】诚聘 WINDOWS C++ WINDOWS C#中高级开发工程师【美国国家仪器】诚聘高级软件 工程师 信号处理软件部门经理【Amazon】亚马逊诚聘技术专家!【网路时代】高薪诚聘C++、.net开发工程师【Autodesk】欧特克软件(中国)诚聘软件开发,测试,研究员 公司简介|招贤纳士|广告服务|银行汇款帐号|联系方式|版权声明|法律顾问|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
江苏乐知网络技术有限公司 提供商务支持
Email:webmaster@csdn.net
Copyright ? 1999-2010, CSDN.NET, All Rights Reserved
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/liyang23456/archive/2007/08/20/1751253.aspx
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/liyang23456/archive/2007/08/20/1751253.aspx
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/liyang23456/archive/2007/08/20/1751253.aspx
发表评论
-
vbs脚本:WriteText
2012-01-20 10:00 604vbs脚本:WriteText 2010年08月09日 ... -
VBS脚本:CopyFile
2012-01-20 10:00 549VBS脚本:CopyFile 2010年08月08日 2 ... -
vbs 脚本:CopyFile
2012-01-20 10:00 826vbs 脚本:CopyFile 2010年08月08日 ... -
vbs脚本:MoveFile
2012-01-20 10:00 684vbs脚本:MoveFile 2010年08月08日 R ... -
vbs脚本:CopyFolder
2012-01-20 10:00 611vbs脚本:CopyFolder 2010年08月08日 ... -
内存绘图
2012-01-19 15:02 503内存绘图 2010年10月07日 经常出现图形闪烁的 ... -
AS3+PNGEncoder PHP 上传图片
2012-01-19 15:02 947AS3+PNGEncoder PHP 上传图片 2010年1 ... -
毕业实习报告
2012-01-19 15:02 834毕业实习报告 2011年05 ... -
7月16号 键盘按键失灵? 蓝屏的终极处理?
2012-01-19 15:02 10017月16号 键盘按键失灵? 蓝屏的终极处理? 2011年07 ... -
电 脑 小 知 识 荟萃
2012-01-17 04:47 667电 脑 小 知 识 荟萃 201 ... -
lightscape dos 下渲染
2012-01-17 04:46 667lightscape dos 下渲染 2011年01月06日 ... -
苹果的配置
2012-01-17 04:46 668苹果的配置 2010年12月27日 苹果的配置 ... -
将bat代码转换为VBS的工具脚本
2012-01-16 03:39 1516将bat代码转换为VBS的工具脚本 2010年01月14日 ... -
按键精灵 脚本-学习VBS的一个不错的教程
2012-01-16 03:39 911按键精灵 脚本-学习VBS的一个不错的教程 2009年12月 ... -
一个整人的vbs脚本(yzy原创)
2012-01-16 03:39 750一个整人的vbs脚本(yzy原创) 2009年08月30日 ... -
脚本-vbs-有用的脚本
2012-01-16 03:39 718脚本-vbs-有用的脚本 2010年01月15日 ,显示 ... -
四个经典的vbs脚本整理
2012-01-16 03:39 717四个经典的vbs脚本整理 2010年05月01日 四个经 ...
相关推荐
nutch 源代码的详细分析,对于自己实现自己的搜索引擎很有帮助,尤其是将nutch项目嵌入到 自己的项目 当中很有帮助!
apache-nutch-2.3.1-src.tar.gz
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。 本资源官网上下的源代码。 nutch-2.1 适用于windows系统
nutch配置nutch-default.xml
apache-nutch-2.2.1(Eclipse直接运行版)今天刚做的,发现有很多坑,分享给大家实验,JDK1.7 Win10。我分享的两个压缩卷一起下载才可以用,资源限制太小了 002地址:...
Nutch是一款刚刚诞生的完整的开源搜索引擎系统,可以结合数据库进行索引,能快速...Nutch的开放源代码方便任何人去查看Nutch排序算法的工作流程。因此Nutch就可以更好的发展,为那些爱好搜索引擎的人们提供了一个平台。
nutch-param-setnutch-param-setnutch-param-setnutch-param-set
相对于那些商用的搜索引擎, Nutch作为开放源代码 搜索引擎将会更加透明, 从而更值得大家信赖. 现在所有主要的搜索引擎都采用私有的排序算法, 而不会解释为什么一个网页会排在一个特定的位置. 除此之外, 有的搜索...
nutch源代码,共享给大家。nutch是一个开源的搜索引擎
nutch不用安装,是个应用程序,下载后为nutch-1.6.tar.gz,双击桌面上的cygwin快捷方式;执行以下命令: $ cd D:/Downloads/Soft $ tar zxvf nutch-1.0.tar.gz 在e盘下面出现nutch-0.9文件夹说明解压成功了.然后环境...
apache-nutch-1.3 的源码包,需要的可以看下
Nutch 是一个开源Java 实现的搜索引擎。这里是它的安装包。
学习nutch 源码解读 轻松入门 搭建自己的nutch搜索引擎
apache-nutch-1.6-src.tar.gz 来自APACHE官网,本人亲自测试可以使用。
apache-nutch-2.3.1-src.tar ,网络爬虫的源码, 用ivy2管理, ant runtime 编译 apache-nutch-2.3.1-src.tar ,网络爬虫的源码, 用ivy2管理, ant runtime 编译
apache-nutch-1.4-bin.tar.gz.part2
Nutch是一个由Java实现的,刚刚诞生开放源代码(open-source)的web搜索引擎。Nutch目前最新的版本为version1.4。这个为nutch的最新版 1.4。
nutch-1.0-dev.jar nutch devlope
一个开源Java 实现的搜索引擎nutch
Eclipse 中编译 Nutch-1.0 运行源代码