nutch的安装以及中文分词器的配置 全部 已经成功了 希望大家找到这个 网上很多不全面

1、解压到cygwin/home/user/nutch下,在里面建立一个urls文件夹,里面新建一个url.txt,里面写着你开始爬取的源网页地址,比如http://www.163.com/  注意最后的斜杠要加上

2、修改nutch\conf\crawl-urlfilter.txt文件,MY.DOMAIN.NAME字符替换为url.txt内的url的域名,如:+^http://([a-z0-9]*\.)*163.com*/   注意最后的斜杠要加上

3、修改nutch\conf\nutch-default.xml文件,找到<name>http.agent.name</name> ,然后把Value值随便设计一个,如 <name>http.agent.name</name>  <value>163</value> 注意:如果http.agent.name为空时,在爬行的时候可能出现空指针异常且在tomcat中搜索时可能导致0条记录,所以务必加上

4、修改nutch\conf\nutch-site.xml文件,如果是sina.com.cn value 的值为:

http://www.sina.com.cn      <property> 

                         <name>http.robots.agents</name> 

                         <value> http://www.sina.com.cn</value>           </property>          <property> 

                         <name>http.agent.name</name> 

                         <value> http://www.sina.com.cn </value>          </property>          <property>

5、cygwin下面执行 export  LANG=zh_CN.GBK

6、把分词包IKAnalyzer3.2.8.jar文件拷入nutch/lib目录下 

7、修改文件 Query.java,位置在C:nutch1.2srcjavaorgapachenutchsearcher下面,一共需要修改两个地方。

1、在36行的位置

添加 import org.apache.nutch.analysis.ParseException;

2、在454行的位置

修改替换对应的代码为:

 public static Query parse(String queryString, String queryLang, Configuration conf)
  throws IOException {

    try{
   return fixup(NutchAnalysis.parseQuery(
           queryString, AnalyzerFactory.get(conf).get(queryLang), conf), conf);

   }

   catch (ParseException e) {

    e.printStackTrace();

    throw new IOException(e.getMessage());

   }
 }

8修改NutchAnalysis.jj代码,位置在C:nutch1.2srcjavaorgapachenutchanalysis

在该文件里找到 | <SIGRAM: <CJK> >,这代表按字划分,修改为 | <SIGRAM: (<CJK>)+ >

然后将NutchAnalysis.jj拷到其他目录单独进行编译,比如在C盘根目录新建一个文件夹cheng,把NutchAnalysis.jj拷贝到C:cheng 下面

javacc工具生成NutchAnalysis.jj的源代码,将生成的所有java源代码(7个文件)全部覆盖到 src/java/org/apache/nutch/analysis

javacc使用方法:cmd进入命令行,切换到NutchAnalysis.jj所在目录(即C:cheng),

输入命令如下

cd C:

cd C:cheng

javacc NutchAnalysis.jj

就会生成7个文件了。

并将这7个文件复制到analysis文件夹下面。

9修改NutchAnalysis.java文件代码,位置在C:nutch1.2srcjavaorgapachenutchanalysis

1、在import区域加入下面的代码

import org.wltea.analyzer.lucene.IKTokenizer;

import org.apache.nutch.analysis.ParseException; 

2、在两个位置加入ParseException异常捕捉命令,否则ant编译时会提示错误。下面是修改后的代码,需要修改的地方已标红。

位置1
public static Query parseQuery(String queryString, Configuration conf) throws IOException,ParseException { 
    return parseQuery(queryString, null, conf); 
  } 

位置2

public static Query parseQuery(String queryString, Analyzer analyzer, Configuration conf) 
    throws IOException,ParseException { 
    NutchAnalysis parser = new NutchAnalysis( 
          queryString, (analyzer != null) ? analyzer : new NutchDocumentAnalyzer(conf)); 
    parser.queryString = queryString; 
    parser.queryFilters = new QueryFilters(conf); 
    return parser.parse(conf);

10修改NutchDocumentAnalyzer.java文件代码,位置也是C:nutch1.2srcjavaorgapachenutchanalysis下。

1)引入IK包(第30行左右)

import org.wltea.analyzer.lucene.IKAnalyzer;
import org.apache.lucene.analysis.tokenattributes.*;

2)修改public TokenStream tokenStream(String fieldName, Reader reader) 函数(第105行左右),替换为:

public TokenStream tokenStream(String fieldName, Reader reader) { 
    
    Analyzer analyzer = new org.wltea.analyzer.lucene.IKAnalyzer(); 
    return analyzer.tokenStream(fieldName, reader); 
  } 

11修改build.xml的文件代码,位置在C:nutch1.2

1、在 <target name="war" depends="jar,compile,generate-docs"></target><lib></lib>之间<include name="log4j-*.jar"/> 下(大概在200行),加入下面的命令使的编译war文件的时候加入je-analysisjar文件。

<include name="IKAnalyzer3.2.8.jar"/>

2、修改<targe tname="job" depends="compile">,改为<target name="job" depends="compile,war">这样编译后能自动在bulid文件夹下生成nutch-1.2.jobnutch-1.2.war,nutch-1.2.jar文件了。

12、进入命令行,切换到C盘nutch1.2目录下,执行ant命令,就会开始ant工作,完成后会在nutch目录下生成build文件夹。 

文件替换,在build文件夹下会生成三个文件

1、将build/nutch-1.2.job替换nutch1.2目录下文件

2、将build/nutch-1.2.jar替换nutch1.2目录下文件

3、将build/nutch-1.2.war替换nutch1.2目录下文件

13、执行export LANG=zh_CN.GBK

14重新爬行与建立索引

必须先删除C:nutch1.2下的crawled文件夹

打开cygwin执行爬取命令

bin/nutch crawl url.txt -dir crawled -depth 3 -threads 4

15tomcat搜索

事先删除C:tomcat6.0webapps下的nutch-1.2文件夹和nutch-1.2.war

1、将新生成的nutch-1.2.war拷贝到tomcat6.0/webapps目录,启动Tomcat服务后,会自动在该目录下生成一个nutch-1.2文件夹。

2、将新生成的nutch-1.2.jar文件和分词包(IKAnalyzer3.2.8.jar)拷贝到tomcatWEB-INF/lib下面

3、启动tomcat会自动生成nutch-1.2文件夹,修改C:tomcat6.0webappsnutch-1.2WEB-INFclasses下的nutch-site.xml

16重启tomcat,浏览器输入http://localhost:8080进入到nutch搜索界面,输入关键词进行搜索,这时会出现空白页,这时还需要修改一个地方。

还是C:tomcat6.0webappsnutch-1.2WEB-INFclasses下的nutch-site.xml文件,增加一个属性:
<property>
  <name>plugin.includes</name>
  <value>protocol-http|urlfilter-regex|parse-(text|html|js)|analysis-(zh)|index-basic|query-(basic|site|url)|summary-lucene|scoring-opic|urlnormalizer-(pass|regex|basic)</value>
</property>
重启tomcat,进行搜索,这时候分词的问题应该解决了吧!

 


你可能感兴趣的:(nutch的安装以及中文分词器的配置 全部 已经成功了 希望大家找到这个 网上很多不全面)