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操作。
分享到:
相关推荐
- **IndexingFilter**:负责对即将建立索引的文档字段进行过滤操作,以确保只有符合要求的内容被索引。 - **URLFilter**:用于过滤URL地址,例如排除不感兴趣的站点或路径。 - **HtmlParseFilter**:对页面解析后的...
- **运行Nutch流程**:执行`bin/nutch crawl`命令,依次进行抓取、解析、索引等步骤。 - **使用Solr或Elasticsearch**:Nutch可以将索引数据导出到Solr或Elasticsearch,以实现更强大的搜索功能。 - **学习源码**...
nutch1.4帮助文档,学习nutch1.4必备,最新nutch1.4核心类解读!
Nutch的工作流程是一个复杂但高效的过程,它通过一系列精心设计的步骤来完成对互联网内容的抓取、解析和索引。通过上述分析,我们可以看出每个步骤都至关重要,且相互之间紧密关联。从初始URL集合的构建到最终索引的...
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 是一个开源的 Web 搜索引擎项目,由 Java 编写,它提供了一种分布式爬虫解决方案,能够从互联网中抓取网页并进行索引,为数据分析和信息检索提供支持。Nutch 的设计目标是透明度和公正性...
nutch1.2测试文档
Nutch的查询处理包括解析用户输入的查询字符串,转换成适合索引查询的格式,然后通过与索引中的文档进行匹配来生成结果。在这个过程中,Nutch使用查询解析器来分析查询,识别字段名和操作符,然后生成Solr的查询...
Nutch API帮助文档,学习Nutch必备
nutch 使用文档 Nutch 是一个开源的网络爬虫工具,使用 Java 语言编写,主要用于爬取和索引互联网上的网页。下面是 Nutch 的使用方法和相关知识点。 Nutch 搭建过程 Nutch 的搭建过程主要包括准备工作、安装 ...
总的来说,Nutch 的 Injector 部分是整个爬取流程的起点,它负责将输入的 URL 数据转化为可处理的形式,并且初始化这些 URL 在 CrawlDB 中的状态,为后续的抓取、解析和索引等步骤做好准备。通过理解这个过程,...
在实际应用中,假设我们已经用Nutch爬取了一批文本文档,我们可以利用Lucene 2.4对这些文档进行索引。具体步骤包括: 1. 初始化Analyzer:选择合适的分词器,如标准分析器(StandardAnalyzer),用于处理中文和英文...
在实际使用中,根据具体需求可能还需要对Nutch的其他配置文件进行调整,如`conf/nutch-default.xml`和`conf/nutch-site.xml`,以便优化抓取策略和索引设置。同时,了解Nutch的抓取流程和原理,对于进行更高级的网络...
《Lucene2.0+Nutch0.8 API帮助文档》是一个综合性的技术资源,它包含了对Lucene 2.0和Nutch 0.8这两个关键的开源搜索引擎库的详细接口和功能说明。这两个组件在信息检索、全文搜索以及网络爬虫领域有着广泛的应用。 ...
ParseSegment 对 Fetcher 下载的网页内容进行解析,提取出文本、元数据等信息。解析后的数据会分别存储在 parse_text、parse_data 和 crawl_parse 文件夹中。这些数据会以 SequenceFileInputFormat 输入,通过 ...
Nutch的`parse-html`模块负责解析HTML文档,如果进行了定制,可能包含了针对MP3链接的特殊处理逻辑,例如提取链接的元数据,或者对嵌入在网页中的MP3进行处理。 在Nutch中,可以编写自定义解析器来处理特定类型的...
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。 本版本为html版,在离线情况下也可以方便使用。目前(2014.5.5)为最新版本的2.2.1。
### Nutch 2.3.1 安装与配置...通过以上步骤,您可以在 CentOS 6.3 系统上成功搭建 Nutch 2.3.1 环境,并进行网页爬取和索引处理。注意,在实际部署时还需要确保系统中已安装并配置好 Java、Hadoop、Solr 等依赖组件。
3. 链接分析(Link Analysis):Nutch使用PageRank算法或其他链接分析算法对网页进行排名,决定哪些页面更重要。 4. 索引(Indexing):重要性较高的网页被索引,以便后续的搜索查询。 5. 搜索(Searching):用户...