Presentation is loading. Please wait.

Presentation is loading. Please wait.

Nutch 二次开发介绍.  1.Nutch 二次开发中重点环节介绍 1.1 信息源选择及规范制定 1.2 信息预处理 1.3 索引构建 1.4 排序规则制定 1.5 查询系统及用户界面  2.Nutch 中的 plugin 介绍 2.1 Plugin 介绍 2.2 页面解析.

Similar presentations


Presentation on theme: "Nutch 二次开发介绍.  1.Nutch 二次开发中重点环节介绍 1.1 信息源选择及规范制定 1.2 信息预处理 1.3 索引构建 1.4 排序规则制定 1.5 查询系统及用户界面  2.Nutch 中的 plugin 介绍 2.1 Plugin 介绍 2.2 页面解析."— Presentation transcript:

1 Nutch 二次开发介绍

2  1.Nutch 二次开发中重点环节介绍 1.1 信息源选择及规范制定 1.2 信息预处理 1.3 索引构建 1.4 排序规则制定 1.5 查询系统及用户界面  2.Nutch 中的 plugin 介绍 2.1 Plugin 介绍 2.2 页面解析

3 1.1 信息源选择及规范制定  对信息源的选择可以反映出搜索引擎的业务范围: 企业局域网搜索引擎:选择某一个网站或者网站群; 综合型的搜索引擎:选择整个网络; 垂直搜索引擎:选择某一主题类网站或网页; 博客搜索引擎:选择的是博客; 文件搜索引擎:选择的是某种格式的文档。 二次开发前,明确需求,分析主要的目标网站,选择作为信息源。  Nutch 通过制定相应的 URL 规则来达到对限定的 URL 进行爬取,即过滤 信息。默认情况下可以在相关的配置文件中进行配置,它用正则表达式 来规范 URL 。当然,还可以自己编写相应的插件等来实现所制定的 URL 规范。

4 1.2 信息预处理  1. 格式识别并抽取文本。一般情况下, Nutch 爬虫下载下来的文档是 HTML ,但是网络上还存在诸多类型的其他文本: txt 、 doc 、 pdf 、 xls 、 rtf 等等,甚至还有多媒体的文档格式。 Nutch 默认对 HTML 、 TXT 能直接 处理。在二次开发时,需要对相应的文档格式进行编写抽取文本工具。  2. 信息过滤。这里的信息过滤是指从抽取的文本中滤去那些不希望使其 存在的文本内容。  3. 编码格式的转换。网络上的信息编码格式各式各样。一般情况下, Nutch 处理后都能实现编码的统一,但是有些信息却不能很好地被默认 程序转换,这时候就应当对 Nutch 进行扩展,以实现编码的转换。

5 1.3 索引构建  经过信息预处理后的信息可以直接建立 Nutch 索引。在索引过程中,需 要考虑的因素也有很多。  一是中文类语言的分词问题。 二是信息的进一步处理,这一过程是在寻找最能表达原文语义的语词集合 。另外还有一些其他相关技术如词干提取、停止词、本体等等。这个过 程是相当重要的一个过程,直接决定了查询服务的效果。

6 1.4 排序规则制定  排序规则影响到查询结果,并且贯穿整个搜索引擎的工作过程中。  影响排序规则的因素:与用户需求的相关性、系统业务需求等,具体的 有如语词在文献中的词频、在整个文献空间的词频、语词位置、信息时 间等。  因此在二次开发时,需要根据需求,针对性地制定排序规则,并把它反 映在系统中。

7 1.5 查询系统及用户界面  Nutch 的查询系统是发布在 Tomcat 下的,它提供了一种类似于 google 的 查询界面,并且支持多语言。  在实际的二次开发中,并不一定支持多种语言,可针对某一种语言进行 改写。另外还可以对查询过程进行二次改发,改变它的查询方式、添加 分页、增加 summery 等。对于用户接口界面,则根据实际情况改写即可 。

8 2.1 Plugin 介绍  Nutch 的 plugin 对 nutch 的工作是很重要的。所有的 nutch 中的 parsing (分 析), indexing (索引), searching (查询)都是通过不同的 plugin 来 实现的。使用 plugin 好处:  可扩展性:通过 plugin , nutch 允许任何人扩展它的功能,而我们要做的 只是对给定的接口做简单的实现,举个例子: MSWordParser 这个插件 是用来分析 word 文档,它就是一个对 parser 这个接口的实现;  灵活性:因为每个人都可以根据自己的需求而写自己的 plugin ,这样 plugin 就会有一个很强大的资源库。这样对与应用 nutch 程序员来说,他 可以在自己的搜索引擎上安装符合自己需求的插件,而这些插件就在 nutch 的 plugins 中。这对于正在应用 nutch 的开发者来说应该是一个巨大 的福音,因为你有了更多的关于内容抽取的算法来选择,很容易就增加 了 pdf 的分析;

9 2.1 Plugin 介绍  可维护性:每个开发者只要关注自己的问题。对于内核的开发者在为引 擎内核扩展的同时,为它添加一个描述它的接口就可以了。一个 plugin 的开发者只要关注这个 plugin 所要实现的功能,而不需要知道整个系统 是怎么工作的。它们仅仅需要知道的是 plugin 和 plug 之间交换的数据类 型。这使得内核更加简单,更容易维护。

10 2.1 Plugin 介绍  在 plugin 的源文件目录中包含以下文件: plugin.xml build.xml plugin 的源码

11 2.2 页面解析  从页面中提取特定的文本,其提取文本的方法在 org.apache.nutch.parse.html 中的 DOMContentUtils 文件中,主要的方法 是 getTextHelper ,调用这个函数的类是 htmlParser 类 参考: http://www.blogjava.net/kxx129/archive/2010/04/23/319209.html http://www.blogjava.net/kxx129/archive/2010/04/23/319209.html


Download ppt "Nutch 二次开发介绍.  1.Nutch 二次开发中重点环节介绍 1.1 信息源选择及规范制定 1.2 信息预处理 1.3 索引构建 1.4 排序规则制定 1.5 查询系统及用户界面  2.Nutch 中的 plugin 介绍 2.1 Plugin 介绍 2.2 页面解析."

Similar presentations


Ads by Google