Nutch二次开发介绍

来源:互联网 发布:广东亿迅 知乎 编辑:程序博客网 时间:2024/06/05 00:40

  • 1.Nutch二次开发中重点环节介绍

  • 1.1 信息源选择及规范制定 

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

  • 1.2 信息预处理 

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

  • 1.3 索引构建 

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

  • 1.4 排序规则制定 

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

  • 1.5 查询系统及用户界面  

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

  • 2. Plugin介绍 

  • Nutch的plugin对nutch的工作是很重要的。所有的nutch中的parsing(分析),indexing(索引),searching(查询)都是通过不同的plugin来实现的。

  • 2.1使用plugin好处: 
  • 可扩展性:
  • 通过plugin,nutch允许任何人扩展它的功能,而我们要做的只是对给定的接口做简单的实现,举个例子:MSWordParser这个插件是用来分析word文档,它就是一个对parser这个接口的实现;
  •  灵活性:
  • 因为每个人都可以根据自己的需求而写自己的plugin,这样plugin就会有一个很强大的资源库。这样对与应用nutch程序员来说,他可以在自己的搜索引擎上安装符合自己需求的插件,而这些插件就在nutch的plugins中。这对于正在应用nutch的开发者来说应该是一个巨大的福音,因为你有了更多的关于内容抽取的算法来选择,很容易就增加了pdf的分析;
  • 可维护:
  • 每个开发者只要关注自己的问题。对于内核的开发者在为引擎内核扩展的同时,为它添加一个描述它的接口就可以了。一个plugin的开发者只要关注这个plugin所要实现的功能,而不需要知道整个系统是怎么工作的。它们仅仅需要知道的是plugin和plug之间交换的数据类型。这使得内核更加简单,更容易维护。

  • 2.2 源码位置 

  • 在plugin的源文件目录中包含以下文件: plugin.xml build.xml plugin的源码

  • 2.3 页面解析 

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