nutch的安裝以及中文分詞器的配置 所有 已經成功了 但願你們找到這個 網上不少不全面

一、解壓到cygwin/home/user/nutch下,在裏面創建一個urls文件夾,裏面新建一個url.txt,裏面寫着你開始爬取的源網頁地址,好比http://www.163.com/  注意最後的斜槓要加上html

二、修改nutch\conf\crawl-urlfilter.txt文件,MY.DOMAIN.NAME字符替換爲url.txt內的url的域名,如:+^http://([a-z0-9]*\.)*163.com*/   注意最後的斜槓要加上java

三、修改nutch\conf\nutch-default.xml文件,找到<name>http.agent.name</name> ,而後把Value值隨便設計一個,如 <name>http.agent.name</name>  <value>163</value> 注意:若是http.agent.name爲空時,在爬行的時候可能出現空指針異常且在tomcat中搜索時可能致使0條記錄,因此務必加上web

四、修改nutch\conf\nutch-site.xml文件,若是是sina.com.cn value 的值爲:apache

http://www.sina.com.cn      <property> 瀏覽器

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

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

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

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

五、cygwin下面執行 export  LANG=zh_CN.GBK函數

六、把分詞包IKAnalyzer3.2.8.jar文件拷入nutch/lib目錄下 

七、修改文件 Query.java,位置在C:nutch1.2srcjavaorgapachenutchsearcher下面,一共須要修改兩個地方。

一、在36行的位置

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

二、在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文件了。

十二、進入命令行,切換到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目錄下文件

1三、執行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,進行搜索,這時候分詞的問題應該解決了吧!

相關文章
相關標籤/搜索