首页 理论教育 Nutch工作原理-对地观测传感网信息服务的模型与方法

Nutch工作原理-对地观测传感网信息服务的模型与方法

时间:2023-10-04 理论教育 版权反馈
【摘要】:这步使得Nucth爬行任务建立在一个文件系统之上。Nutch以广度优先的原则来爬行,因此每爬完一轮会生成一个segment目录。对应到Nutch的运行代码中就是一个servlet,称为查询处理器。Nutch查询最终被转换为特定的Lucene查询类型。

Nutch工作原理-对地观测传感网信息服务的模型与方法

1.Nutch爬行过程

Nutch爬行建立索引的过程包含以下几步 (Clark James,1999):

第一步: 创建日志文件log,它将记录运行过程中所发生的信息,出错时便于分析出错的原因。

第二步: 接收爬行命令的参数,有要爬行的网址文件目录 (url Dir),爬行时索引和信息存储的目录 (dir),爬行的线程 (thread),爬行的深度 (depth) 和爬行的最大记录数 (top N)。

第三步: 创建配置Nutch文件,加载默认配置crawl-tool.xml,再创建一个Nutch作业(Nutch Job),目的是使Nutch的爬行任务在hadoop框架上完成。

第四步: 创建文件系统 (File System.get (job)),文件系统可以是本地的,也可以是分布式的。这步使得Nucth爬行任务建立在一个文件系统之上。

第五步: 在存储目录中建立五个文件,分别是crawldb、linkdb、segments、indexes、index。crawdb,linkdb 是web link目录,存放url 及url的互联关系,作为爬行与重新爬行的依据,页面默认30天过期。segments 是主目录,存放抓回来的网页。Nutch以广度优先的原则来爬行,因此每爬完一轮会生成一个segment目录。Index 是lucene的索引目录,是indexs里所有index合并后的完整索引,索引文件只对页面内容进行索引,没有进行存储,因此查询时要去访问segments目录才能获得页面内容。(www.xing528.com)

第六步是: ①通过Injector类的inject方法将抓取的起始URLs写入crawldb中; ②通过Generator类,根据crawldb生成fetchlist,并写入相应的segment; ③根据Fetcher类中fetchlist的URL抓取网页; ④根据抓取网页更新crawldb; ⑤循环进行②~④步直至预先设定的抓取深度; ⑥根据crawldb得到的网页评分和links更新segments; ⑦通过Indexer类对所抓取的网页进行索引; ⑧通过Delete Duplicates类在索引中丢弃有重复内容的网页和重复的URLs; ⑨通过Index Merger将segments中的索引进行合并生成用于检索的最终in-dex。

2.Nutch查询过程

Nutch查询过程可以描述为:

HTTP服务器接收用户发送过来的请求。对应到Nutch的运行代码中就是一个servlet,称为查询处理器。查询处理器负责响应用户的请求,并将相应的结果页面返回给用户。

查询处理器对查询语句做一些微小的处理并将搜索的项转发到一组运行索引搜索器的机器上。Nutch查询最终被转换为特定的Lucene查询类型。每个索引搜索器并行工作且返回一组有序的文档ID列表。

现在存在着大量从查询处理器返回过来的搜索结果数据流,查询处理器对这些结果集进行比较,从所有的结果中查找出匹配最好的结果集。如果其中任何一个搜索器在1~2秒之后返回结果失败,该搜索器的结果将被忽略,最后列表由操作成功的搜索器返回的结果组成。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈