- 浏览: 160178 次
- 性别:
- 来自: 北京
最新评论
-
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 2204很久没有更新博客了,应该快一年了。现在呢,我把去年 ... -
配置linux服务器之间ssh不用密码访问
2008-11-05 13:55 3916在配置nutch的时候,我 ... -
搜索引擎术语
2008-10-15 15:30 2553最近monner兄共享了一篇 ... -
搜索引擎机器人研究报告
2008-10-13 15:35 1933从该文对googlebot的分析看,googlebot似乎是想 ... -
搜索引擎算法研究
2008-10-13 15:11 21251.引言 万维网WWW(World Wide Web ... -
谁说搜索引擎只关注结果-看我viewzi的72变
2008-10-04 20:15 1842搜索引擎给大家的感觉,就是用起来简单,以google为首,一个 ... -
《Lucene+Nutch搜索引擎》看过以后。。。
2008-10-03 23:42 7643研究搜索引擎技术快一 ... -
微软有趣的人物关系搜索引擎——人立方
2008-10-03 20:00 3977最近,微软亚洲研究院 ... -
Nutch开源搜索引擎增量索引recrawl的终极解决办法(续)
2008-09-28 19:30 3481十一要放假了,先祝广大同学们节日快乐! 在之前的一篇文章中, ... -
Nutch:一个灵活可扩展的开源web搜索引擎
2008-09-28 11:46 2272在网上找到一篇于2004年11月由CommerceNet La ... -
Google公司都是些什么牛人?
2008-09-27 17:31 2082Google公司都是些什么牛人? 1 Vi ... -
搜索引擎名人堂之Doug Cutting
2008-09-27 11:41 2647Doug Cutting是一个开源搜索技术的提倡者和创造者。他 ... -
Nutch开源搜索引擎增量索引recrawl的终极解决办法
2008-09-26 19:12 5182本文重点是介绍Nutch开源搜索引擎如何在Hadoop分布式计 ... -
Nutch开源搜索引擎与Paoding中文分词用plugin方式集成
2008-09-26 15:31 4598本文是我在集成中文分词paoding时积累的经验,单独成一篇文 ... -
关于Hadoop的MapReduce纯技术点文章
2008-09-24 18:10 3523本文重点讲述Hadoop的整 ... -
MapReduce-免费午餐还没有结束?
2008-09-24 09:57 1489Map Reduce - the Free Lunch is ... -
搜索引擎名人堂之Jeff Dean
2008-09-22 15:09 14983最近一直在研究Nutch,所以关注到了搜索引擎界的一些名人,以 ... -
Lucene于搜索引擎技术(Analysis包详解)
2008-09-22 14:55 2228Analysis 包分析 ... -
Lucene与搜索引擎技术(Document包详解)
2008-09-22 14:54 1725Document 包分析 理解 ... -
Lucene的查询语法
2008-09-22 14:53 1419原文来自: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
### Eclipse中编译Nutch-1.0:深入解析与实践指南 #### 一、环境准备与基础构建 在Linux环境中使用Eclipse编译Nutch-1.0,首要任务是确保开发环境满足项目需求。这包括确认Eclipse的JDK、JRE版本至少为1.6或更高...
Nutch1.0的API,不过注意没有搜索功能
### Nutch开源搜索引擎增量索引recrawl的终极解决办法 #### 知识点解析: **Nutch与Hadoop集成下的recrawl策略** Nutch是一款基于Java的开源搜索引擎框架,能够爬取网页、提取数据并建立索引。它利用Apache ...
Nutch 是一个开源的、Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。
Nutch 是一个开源的、Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。
Nutch 是一个开源的、Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。
Nutch 是一个开源的、Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。
Nutch 是一个开源的、Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。
在前一篇文章中,我们探讨了Nutch开源搜索引擎在进行增量索引更新(recrawl)时遇到的问题及其初步解决方案。然而,在实际操作过程中发现,尽管解决了基本的增量更新逻辑,但在执行`indexmerge`命令后,新旧索引合并...
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。