`

nutch对某个contentType文档进行解析的流程

 
阅读更多

nutch支持对诸多的文档类型作了解析处理,包括html,xml,zip,pdf等,其中好像从1.1以后提供了tika的进一步封装处理。

 

1.说明

在fetch的output()时会发现,它调用了ParseUtil的parse()进行处理。

nutch执行解析时有个优先级原则,即parse-plugins.xml是可选的 ,如果存在,则使用,不存在的话直接从plugin.includes中所有parser plugins根据conent type比较,一样的话就接受。

 

所有要想使用相关的parser plugins,必须要做到一点:

  在plugin.includes中添加相应的plugin id。

 

另外,要注意的是如果有同类的plugin定义的话,如果执行是顺序的,必须要在相应的xxx.order属性下设置,否则执行顺序是不确定的。我看到nutch-default.xml中说是如果没有在xxxx.order中定义的话,将按plugin.includes中的顺序执行,这是错误的,因为代码中实现是hashmap,然后通过其中的values()直接返回的;如果使用linkedhashmap的话可能没问题。

 

 parse-plugins.xml

  这个文件定义了plugin-id的映射关系,即通过content type取哪个Plugin来处理。其中包含二部分:

  a)mimeType 这个元素定义了content-type与extension的映射,当然一个content-type可以由多个extensions来按优先级执行(当然了只会执行一个),所以其中有个order属性,但是可选的。

 

  b)alias 这里才是根据上述定义的plugin-id对应到真正的extension-id映射。

 综上所述,其中这里定义的plugin-id只是一个中间命名一样,最終比较的却是content type和extension id。

所以要想mimeType中的plugin有效,必须要在alias添加对应的映射。

 

 

2.下面从流程开始说起。

1)如果有parse-plugins.xml定义映射关系,否则进入2)

1.1)根据定义的conent-type与plugin.includes中的相应parser插件进行content type和extension id的对比,如果全匹配就添加到返回列表;否则只是简单地进行extension id的比较,此时表明相应的plugin.xml没有指定parameter来支持contentType或不匹配。


2)根据plugin.includes中的parser plugins进行content type对比。

3)如果经过1,2处理后仍然没有找到合适的parser list,则从parse-plugin.xml中取出 contentType为*的plugin ids,重复1)。

 

4)根据parser list按优先级对content type的content进行最終的parse操作。

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    nutch帮助文档;nutch学习 入门

    - **运行Nutch流程**:执行`bin/nutch crawl`命令,依次进行抓取、解析、索引等步骤。 - **使用Solr或Elasticsearch**:Nutch可以将索引数据导出到Solr或Elasticsearch,以实现更强大的搜索功能。 - **学习源码**...

    Nutch插件开发文档

    - **IndexingFilter**:负责对即将建立索引的文档字段进行过滤操作,以确保只有符合要求的内容被索引。 - **URLFilter**:用于过滤URL地址,例如排除不感兴趣的站点或路径。 - **HtmlParseFilter**:对页面解析后的...

    nutch1.4帮助文档

    nutch1.4帮助文档,学习nutch1.4必备,最新nutch1.4核心类解读!

    分析Nutch的工作流程

    Nutch的工作流程是一个复杂但高效的过程,它通过一系列精心设计的步骤来完成对互联网内容的抓取、解析和索引。通过上述分析,我们可以看出每个步骤都至关重要,且相互之间紧密关联。从初始URL集合的构建到最终索引的...

    nutch 初学文档教材

    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...

    Nutch简要文档

    【Nutch 简要文档】 Nutch 是一个开源的 Web 搜索引擎项目,由 Java 编写,它提供了一种分布式爬虫解决方案,能够从互联网中抓取网页并进行索引,为数据分析和信息检索提供支持。Nutch 的设计目标是透明度和公正性...

    nutch1.2测试文档

    nutch1.2测试文档

    nutch对指定字段进行查询及双引号查询

    Nutch的查询处理包括解析用户输入的查询字符串,转换成适合索引查询的格式,然后通过与索引中的文档进行匹配来生成结果。在这个过程中,Nutch使用查询解析器来分析查询,识别字段名和操作符,然后生成Solr的查询...

    Nutch API帮助文档

    Nutch API帮助文档,学习Nutch必备

    nutch的源代码解析

    总的来说,Nutch 的 Injector 部分是整个爬取流程的起点,它负责将输入的 URL 数据转化为可处理的形式,并且初始化这些 URL 在 CrawlDB 中的状态,为后续的抓取、解析和索引等步骤做好准备。通过理解这个过程,...

    lucene2.4+nutch学习笔记三:lucene 在多个文本文档里找出包含一些关键字的文档

    在实际应用中,假设我们已经用Nutch爬取了一批文本文档,我们可以利用Lucene 2.4对这些文档进行索引。具体步骤包括: 1. 初始化Analyzer:选择合适的分词器,如标准分析器(StandardAnalyzer),用于处理中文和英文...

    Nutch 安装与配置文档

    在实际使用中,根据具体需求可能还需要对Nutch的其他配置文件进行调整,如`conf/nutch-default.xml`和`conf/nutch-site.xml`,以便优化抓取策略和索引设置。同时,了解Nutch的抓取流程和原理,对于进行更高级的网络...

    Lucene2.0+Nutch0.8 API帮助文档(CHM格式)

    《Lucene2.0+Nutch0.8 API帮助文档》是一个综合性的技术资源,它包含了对Lucene 2.0和Nutch 0.8这两个关键的开源搜索引擎库的详细接口和功能说明。这两个组件在信息检索、全文搜索以及网络爬虫领域有着广泛的应用。 ...

    nutch流程解析.doc

    ParseSegment 对 Fetcher 下载的网页内容进行解析,提取出文本、元数据等信息。解析后的数据会分别存储在 parse_text、parse_data 和 crawl_parse 文件夹中。这些数据会以 SequenceFileInputFormat 输入,通过 ...

    mp3文件信息解析-nutch使用

    Nutch的`parse-html`模块负责解析HTML文档,如果进行了定制,可能包含了针对MP3链接的特殊处理逻辑,例如提取链接的元数据,或者对嵌入在网页中的MP3进行处理。 在Nutch中,可以编写自定义解析器来处理特定类型的...

    Nutch API帮助文档2.2.1(目前最新版)

    Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。 本版本为html版,在离线情况下也可以方便使用。目前(2014.5.5)为最新版本的2.2.1。

    nutch2.3.1安装文档教程

    ### Nutch 2.3.1 安装与配置...通过以上步骤,您可以在 CentOS 6.3 系统上成功搭建 Nutch 2.3.1 环境,并进行网页爬取和索引处理。注意,在实际部署时还需要确保系统中已安装并配置好 Java、Hadoop、Solr 等依赖组件。

    nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据

    通过分析这些数据,可以研究Nutch的抓取效果,比如抓取覆盖率、重复率、错误率等,也可以对爬虫的性能进行评估和优化。 总的来说,Nutch 爬虫数据提供了对互联网内容的深入洞察,对于搜索引擎开发者、数据分析人员...

Global site tag (gtag.js) - Google Analytics