- 浏览: 158243 次
- 性别:
- 来自: 北京
最新评论
-
w156445045:
我最近想写这方面的论文,学位论文啊,哎。希望博主能给点思路,谢 ...
《Lucene+Nutch搜索引擎》看过以后。。。 -
inprice:
这也要研究啊!!!!! 失望ing.........
完成了对于heritrix的初步研究 -
dt_fb:
您好,我想问问您,你有跳过recrawl.sh这个脚本文件么? ...
Nutch开源搜索引擎的crawl日志分析及工作目录说明 -
lovepoem:
能增量吗?是不是还是把所有的url遍历出来。和以前的对比。算是 ...
Nutch开源搜索引擎增量索引recrawl的终极解决办法 -
itang:
见到牛人照片了, MS下巴动过刀(开玩笑)
搜索引擎名人堂之Jeff Dean
本文主要描述的是如何将paoding分词用plugin方式集成到 nutch1.0中去,在集成之前首先要在eclipse中把nutch1.0编译通过。然后,写一个中文分词程序,配置好插件配置文件,重新打包编译。如果有linux环境,就可以直接进行编译,如果没有linux环境,还需要下载并配置cygwin等模拟linux环境。
一.环境说明
工具:myeclipse6.5 ,jdk1.6.0_14,tomcat-6.0.20
软件:nutch1.0
相关软件请自行google,下载安装
二.配置eclipse
新建nutch工程后,配译会报错
1)下载缺失的包
从http://nutch.cvs.sourceforge.net/nutch/nutch/src/plugin/parse-mp3/lib /,http://nutch.cvs.sourceforge.net/nutch/nutch/src/plugin/parse-rtf/lib /下载MP3跟rtf的jar文件,分别拷贝到src/plugin/parse-mp3/lib 和 src/plugin/parse-rtf/lib/文件夹下
2)修改了@override错误
org.apache.nutch.indexer.solr.SolrDeleteDuplicates;
org.apache.nutch.util.domain.DomainStatistics;
//@override错误 将override注释掉
3)licensing issues修复
到这一步,一般的工程都会有两个错误,nutch的official 1.0 release版本中,这两个问题因为licensing issues没有修复。接下来的就是最关键的部分了。
修改src\plugin\parse-rtf\src\java\org\apache\nutch\parse\rtf下RTFParseFactory.java
添加import org.apache.nutch.parse.ParseResult;
将public Parse getParse(Content content) {
改为public ParseResult getParse(Content content) {
将return new ParseStatus(ParseStatus.FAILED,
ParseStatus.FAILED_EXCEPTION,
e.toString()).getEmptyParse(conf);
改为return new ParseStatus(ParseStatus.FAILED,
ParseStatus.FAILED_EXCEPTION,
e.toString()).getEmptyParseResult(content.getUrl(), getConf());
将return new ParseImpl(text,
new ParseData(ParseStatus.STATUS_SUCCESS,
title,
OutlinkExtractor.getOutlinks(text, this.conf),
content.getMetadata(),
metadata));
改为return ParseResult.createParseResult(content.getUrl(),
new ParseImpl(text,
new ParseData(ParseStatus.STATUS_SUCCESS,
title,
OutlinkExtractor.getOutlinks(text, this.conf),
content.getMetadata(),
metadata)));
修改src\plugin\parse-rtf\src\test\org\apache\nutch\parse\rtf下的TestRTFParser.java
将parse = new ParseUtil(conf).parseByExtensionId("parse-rtf", content);
改为parse = new ParseUtil(conf).parseByExtensionId("parse-rtf", content).get(urlString);
到这一步,eclipse上面的工程就会没有错误了
三.配置paoding插件
1)写中文分词程序,继承NutchAnalyzer
/**
* Paoding chinese analyzer
*/
package org.apache.nutch.analysis.zh;
// JDK imports
import java.io.Reader;
// Lucene imports
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream;
// Nutch imports
import org.apache.nutch.analysis.NutchAnalyzer;
/**
* A simple Chinese Analyzer that wraps the Lucene one.
* @author kevin tu
*/
public class ChineseAnalyzer extends NutchAnalyzer {
private final static Analyzer ANALYZER =
new net.paoding.analysis.analyzer.PaodingAnalyzer();
/** Creates a new instance of ChineseAnalyzer */
public ChineseAnalyzer() { }
public TokenStream tokenStream(String fieldName, Reader reader) {
return ANALYZER.tokenStream(fieldName, reader);
}
}
2)配置插件目录在src/plugin下面,analysis-zh,lib-paoding-analyzers
把上面写好的ChineseAnalyzer放到analysis-zh/src下面,
修改plugin.xml文件
<plugin
id="analysis-zh"
name="Chinese Analysis Plug-in"
version="1.0.0"
provider-name="net.paoding.analysis">
<runtime>
<library name="analysis-zh.jar">
<export name="*"/>
</library>
</runtime>
<requires>
<import plugin="nutch-extensionpoints"/>
<import plugin="lib-paoding-analyzers"/>
</requires>
<extension id="org.apache.nutch.analysis.zh"
name="Chinese Analyzer"
point="org.apache.nutch.analysis.NutchAnalyzer">
<implementation id="ChineseAnalyzer"
class="org.apache.nutch.analysis.zh.ChineseAnalyzer">
<parameter name="lang" value="zh"/>
</implementation>
</extension>
</plugin>
修改build.xml
<project name="analysis-zh" default="jar-core">
<import file="../build-plugin.xml"/>
<!-- Build compilation dependencies -->
<target name="deps-jar">
<ant target="jar" inheritall="false" dir="../lib-paoding-analyzers"/>
</target>
<!-- Add compilation dependencies to classpath -->
<path id="plugin.deps">
<fileset dir="${nutch.root}/build">
<include name="**/lib-paoding-analyzers/*.jar" />
</fileset>
</path>
</project>
lib-paoding-analyzers的配置同上,不再赘述。
3)配置src\plugin的build.xml
<target name="deploy">
<ant dir="analysis-zh" target="deploy"/>
<ant dir="lib-paoding-analyzers" target="deploy"/>
...
</target>
<target name="clean">
<ant dir="analysis-zh" target="clean"/>
<ant dir="lib-paoding-analyzers" target="clean"/>
...
</target>
4)修改nutch-default.xml,加入|analysis-(zh)| 加载paoding的jar包,和自己写的analysis-(zh) jar包
<property>
<name>plugin.includes</name>
<value>protocol-http|urlfilter-regex|parse-(text|html|js)|analysis-(zh)|index-basic|query-(basic|site|url)|summary-basic|scoring-opic|urlnormalizer-(pass|regex|basic)</value>
<description>
</description>
</property>
5)修改nutch工程的build.xml,targe war
<lib dir="${build.dir}/analysis-zh">
<include name="analysis-zh.jar"/>
</lib>
<lib dir="${build.dir}/lib-paoding-analyzers">
<include name="paoding-analysis.jar"/>
</lib>
四.重新编译
ant package
注意:nutch1.0 需要ant1.7.1才行,主要是touch任务需要ant 1.7.1支持
五.配置tomcat,修改webapps/cse/WEB-INF/classes/nutch-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>local</value>
</property>
<property><!--指定本地的index目录-->
<name>searcher.dir</name>
<value>/nutch/local/crawled</value>
</property>
<property>
</property>
</configuration>
六.配置运行环境
export PAODING_DIC_HOME=/nutch/dic
七.运行测试
http://localhost:8080/
2009-09-14 10:26:49,312 INFO PluginRepository - Registered Plugins:
2009-09-14 10:26:49,312 INFO PluginRepository - the nutch core extension points (nutch-extensionpoints)
2009-09-14 10:26:49,312 INFO PluginRepository - Basic Query Filter (query-basic)
2009-09-14 10:26:49,312 INFO PluginRepository - Basic URL Normalizer (urlnormalizer-basic)
2009-09-14 10:26:49,312 INFO PluginRepository - Paoding Analysers (lib-paoding-analyzers)
2009-09-14 10:26:49,328 INFO PluginRepository - Html Parse Plug-in (parse-html)
2009-09-14 10:26:49,328 INFO PluginRepository - Basic Indexing Filter (index-basic)
2009-09-14 10:26:49,328 INFO PluginRepository - Basic Summarizer Plug-in (summary-basic)
2009-09-14 10:26:49,328 INFO PluginRepository - Site Query Filter (query-site)
2009-09-14 10:26:49,328 INFO PluginRepository - HTTP Framework (lib-http)
2009-09-14 10:26:49,328 INFO PluginRepository - Text Parse Plug-in (parse-text)
2009-09-14 10:26:49,328 INFO PluginRepository - Pass-through URL Normalizer (urlnormalizer-pass)
2009-09-14 10:26:49,328 INFO PluginRepository - Regex URL Filter (urlfilter-regex)
2009-09-14 10:26:49,328 INFO PluginRepository - Http Protocol Plug-in (protocol-http)
2009-09-14 10:26:49,328 INFO PluginRepository - XML Response Writer Plug-in (response-xml)
2009-09-14 10:26:49,328 INFO PluginRepository - Regex URL Normalizer (urlnormalizer-regex)
2009-09-14 10:26:49,328 INFO PluginRepository - OPIC Scoring Plug-in (scoring-opic)
2009-09-14 10:26:49,343 INFO PluginRepository - CyberNeko HTML Parser (lib-nekohtml)
2009-09-14 10:26:49,343 INFO PluginRepository - Anchor Indexing Filter (index-anchor)
2009-09-14 10:26:49,343 INFO PluginRepository - JavaScript Parser (parse-js)
2009-09-14 10:26:49,343 INFO PluginRepository - URL Query Filter (query-url)
2009-09-14 10:26:49,343 INFO PluginRepository - Chinese Analysis Plug-in (analysis-zh)
2009-09-14 10:26:49,343 INFO PluginRepository - Regex URL Filter Framework (lib-regex-filter)
2009-09-14 10:26:49,343 INFO PluginRepository - JSON Response Writer Plug-in (response-json)
2009-09-14 10:26:49,343 INFO PluginRepository - Registered Extension-Points:
2009-09-14 10:26:49,359 INFO PluginRepository - Nutch Summarizer (org.apache.nutch.searcher.Summarizer)
其中hinese Analysis Plug-in (analysis-zh)就是配置好的中文分词插件啦。
好,大功告成,用paoding爽一爽吧,分词效果“刚刚的”。
评论
新建nutch工程后,配译会报错
1)下载缺失的包
从http://nutch.cvs.sourceforge.net/nutch/nutch/src/plugin/parse-mp3/lib /,http://nutch.cvs.sourceforge.net/nutch/nutch/src/plugin/parse-rtf/lib /下载MP3跟rtf的jar文件,分别拷贝到src/plugin/parse-mp3/lib 和 src/plugin/parse-rtf/lib/文件夹下
我邮箱wzjin@163.com,谢谢!
不用发了,还是配好了可以实现抓取和分词,谢谢!希望以后能共同探讨。
我邮箱wzjin@163.com,谢谢!
当时我把网站内容爬取过来,分词时候还是默认加载英文分词了,得修改一下源码,不过你没动过源码,哈。可能是我少配置哪了。。
-----------------------------------------------
这个配置还是讲讲吧,不是谁都像你一样搞这个好多年的。
也谢谢你共享这样好的文章。
plugin.xml
<plugin
id="lib-paoding-analyzers"
name="Paoding Analysers"
version="2.0.4"
provider-name="net.paoding.analysis">
<runtime>
<library name="paoding-analysis.jar">
<export name="*"/>
</library>
</runtime>
</plugin>
build.xml
<project name="lib-paoding-analyzers" default="jar">
<import file="../build-plugin.xml"/>
<!--
! Override the compile and jar targets,
! since there is nothing to compile here.
! -->
<target name="compile" depends="init"/>
<target name="jar" depends="compile">
<copy todir="${build.dir}" verbose="true">
<fileset dir="./lib" includes="**/*.jar"/>
</copy>
</target>
</project>
参照这个来配置吧,应该不会有问题了。
-----------------------------------------------
这个配置还是讲讲吧,不是谁都像你一样搞这个好多年的。
也谢谢你共享这样好的文章。
发表评论
-
Nutch1.0的那些事
2009-09-10 12:37 2157很久没有更新博客了,应该快一年了。现在呢,我把去年 ... -
配置linux服务器之间ssh不用密码访问
2008-11-05 13:55 3877在配置nutch的时候,我 ... -
搜索引擎术语
2008-10-15 15:30 2506最近monner兄共享了一篇 ... -
搜索引擎机器人研究报告
2008-10-13 15:35 1902从该文对googlebot的分析看,googlebot似乎是想 ... -
搜索引擎算法研究
2008-10-13 15:11 20961.引言 万维网WWW(World Wide Web ... -
谁说搜索引擎只关注结果-看我viewzi的72变
2008-10-04 20:15 1801搜索引擎给大家的感觉,就是用起来简单,以google为首,一个 ... -
《Lucene+Nutch搜索引擎》看过以后。。。
2008-10-03 23:42 7606研究搜索引擎技术快一 ... -
微软有趣的人物关系搜索引擎——人立方
2008-10-03 20:00 3904最近,微软亚洲研究院 ... -
Nutch开源搜索引擎增量索引recrawl的终极解决办法(续)
2008-09-28 19:30 3448十一要放假了,先祝广大同学们节日快乐! 在之前的一篇文章中, ... -
Nutch:一个灵活可扩展的开源web搜索引擎
2008-09-28 11:46 2228在网上找到一篇于2004年11月由CommerceNet La ... -
Google公司都是些什么牛人?
2008-09-27 17:31 2024Google公司都是些什么牛人? 1 Vi ... -
搜索引擎名人堂之Doug Cutting
2008-09-27 11:41 2602Doug Cutting是一个开源搜索技术的提倡者和创造者。他 ... -
Nutch开源搜索引擎增量索引recrawl的终极解决办法
2008-09-26 19:12 5140本文重点是介绍Nutch开源搜索引擎如何在Hadoop分布式计 ... -
Nutch开源搜索引擎与Paoding中文分词用plugin方式集成
2008-09-26 15:31 4572本文是我在集成中文分词paoding时积累的经验,单独成一篇文 ... -
关于Hadoop的MapReduce纯技术点文章
2008-09-24 18:10 3476本文重点讲述Hadoop的整 ... -
MapReduce-免费午餐还没有结束?
2008-09-24 09:57 1460Map Reduce - the Free Lunch is ... -
搜索引擎名人堂之Jeff Dean
2008-09-22 15:09 14914最近一直在研究Nutch,所以关注到了搜索引擎界的一些名人,以 ... -
Lucene于搜索引擎技术(Analysis包详解)
2008-09-22 14:55 2187Analysis 包分析 ... -
Lucene与搜索引擎技术(Document包详解)
2008-09-22 14:54 1692Document 包分析 理解 ... -
Lucene的查询语法
2008-09-22 14:53 1382原文来自:http://liyu2000.nease.net/ ...
相关推荐
[硕士论文]_基于Nutch的垂直搜索引擎的分析与实现.pdf 一个例子学懂搜索引擎(lucene).doc 中文搜索引擎技术揭密.doc 九大开源搜索引擎介绍.txt 基于Nutch的搜索引擎技术.pdf 基于开源工具搭建小型搜索引擎.pdf 整合...
Nutch 是一个开源的、Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。 nutch 1.0
Nutch 是一个开源的、Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。
Nutch 是一个开源的、Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。 nutch 1.0
Nutch 是一个开源的、Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。 nutch 1.0
Nutch1.0的API,不过注意没有搜索功能
Nutch开源搜索引擎增量索引recrawl的终极解决办法
Nutch开源搜索引擎增量索引recrawl的终极解决办法续
Eclipse 中编译 Nutch-1.0 运行源代码
Nutch 是一个开源的、Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。
Nutch 是一个开源的、Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。
Nutch 是一个开源的、Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。
Nutch 是一个开源的、Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。
Nutch 是一个开源的、Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。
基于Nutch的搜索引擎系统的研究与实现