利用Nutch实现分类搜索(一)(加入index plugin)
来源:互联网 发布:js中字符串的长度函数 编辑:程序博客网 时间:2024/05/16 07:22
Simsun">大家在用Google的时候会发现可以按分类来搜索,例如可以搜新闻、博客和购物等等,本系列文章将通过在Nutch中加入插件的方式来实现此功能。本系列文章假设读者对Nutch有一定的了解,能成功编译和简单配置Nutch,并用Nutch提供的Crawl来抓取网页。
本文将讲述如何在Nutch系统中加入我们的index-typeplugin。
在利用luke查看抓去的数据时,可以发现默认有十几个fileds,例如title、url和content等等,我们要加入一个typefield用来表示网站类型。
在src/plugin目录下创建index-type目录(可以参考index-basic的目录结构),加入如下三个java文件。需要注意的是包的名称要和建立的文件目录结构一致。
TypeNameFactory实现了IndexingFilter接口,ExtentionManager将会从此作为入口。
+expand sourceview plain
TypeNameFactory根据参数indexer.type.includes的值,得到type的种类,而后根据种类读取相应的规则文件,并放入HashMap中。
Consolas">+expand sourceview plain
TypeNameSelector对应于一个规则文件,提供filter接口以筛选网址。
Consolas">+expand sourceview plain
在lib-regex-filter中加入org.apache.nutch.urlfilter.api.Rule。
Consolas">+expand sourceview plain
加入build.xml,用到了lib-regex-filter库,所以要加入引用。
Consolas">+expand sourceview plain
加入plugin.xml,注意extention point是"org.apache.nutch.indexer.IndexingFilter",是indexing的公共的接口。
Consolas">+expand sourceview plain
还有一件重要的事情,把这个index-type加入编译系统,修改src/plugin/build.xml,添加如下编译入口:
Consolas">viewplain
至此,在ant package的时候会把我们的index-type编译进去了,查看编译结果能否正确产生index-type.jar。
在成功编译完成后,我们来尝试一下抓取网页,之前需要对conf/nutch-site.xml做修改:
加入indexer.type.includes参数,值为各种网页类型,用“|”分隔多个类型,在plugin.includes参数的值中加入index-type,这样在系统启动时会自动加载index-typeplugin。
Consolas">+expand sourceview plain
对每一种网页类型,提供一个对应规则文件,下面crawl-urltype-news.txt是针对news设计的规则。
Consolas">viewplain
另外4中type类似,在此不一一贴出,需要注意的是文件命名规则为crawl-urltype-(YOURWEBTYPE).txt,YOURWEBTYPE和indexer.type.includes参数中的值一一对应,文件放置于conf目录下。
而后设置crawl的起始urls,运行nutchcrawl就可以在网络上抓取数据了,利用luke查看最终结果,可以发现多了一个type field,如果抓取的网页足够多的话,可以看到有5个值,分别都定义于indexer.type.includes中。
至此index能够成功根据不同的网页类型将其typefield加入结构的索引中了。
本文将讲述如何在Nutch系统中加入我们的index-type
在利用luke查看抓去的数据时,可以发现默认有十几个fileds,例如title、url和content等等,我们要加入一个type
在src/plugin目录下创建index-type目录(可以参考index-basic的目录结构),加入如下三个java文件。需要注意的是包的名称要和建立的文件目录结构一致。
TypeNameFactory实现了IndexingFilter接口,Extention
+
Consolas">+
Consolas">+
Consolas">+
Consolas">+
Consolas">+
Consolas">view
- <
target name = "deploy" > -
< ant dir = "index-type" target = "deploy" /> - </
target > - <
target name = "clean" > -
< ant dir = "index-type" target = "clean" /> - </
target >
在成功编译完成后,我们来尝试一下抓取网页,之前需要对conf/nutch-site.xml做修改:
加入indexer.type.includes参数,值为各种网页类型,用“|”分隔多个类型,在plugin.includes参数的值中加入index-type,这样在系统启动时会自动加载index-type
Consolas">+
Consolas">view
- #
accept hosts in - +^http://news.sina.com.cn/
- +^http://news.baidu.com/
- +^http://news.163.com/
- #
skip everything else - -.
而后设置crawl的起始urls,运行nutch
至此index能够成功根据不同的网页类型将其type
- 利用Nutch实现分类搜索(一)(加入index plugin)
- 利用Nutch实现分类搜索(一)(加入index plugin)
- 利用Nutch实现分类搜索(二)(加入urlfilter plugin)
- 利用Nutch实现分类搜索(三)(加入query plugin)
- nutch源代码分析--index(一)
- nutch分类搜索
- Nutch中搜索时把自定义的字段(filed)加入检索条件
- Nutch在搜索时把自定义的字段(filed)加入检索条件
- Nutch总结(一)
- ADT plugin 的实现(一)
- Nutch二次开发总结(一)
- Nutch二次开发总结(一)
- Nutch学习笔记(一)
- nutch plugin
- Nutch搜索的servlet实现
- Nutch 笔记(一):Nutch 快速上手指南(收藏)
- Nutch源代码浅析(一)(概述)
- Nutch数据的组成(一)
- [算法导论读书笔记]堆排序,优先队列
- pythonchallenge通关记录
- 常用SQL语句的语法格式
- Android中如何使用命令行查看内嵌数据库sqlite3
- 千山独行-一个人的创业路(连载八)
- 利用Nutch实现分类搜索(一)(加入index plugin)
- 设计模式之状态模式
- opencv 查找轮廓,cvFindContours返回值,contour->total和循环得到的轮廓数为什么不同?分别表示神马意思?
- RW、RO、ZI段的含义
- 第二周(新发)
- 数据库三大范式的学习
- linux 驱动的request_irq ..............
- 解决Nutch一些小问题
- windows常用消息大全(系统消息、通告消息、用户消息)