1. 程式人生 > >八、使用IKAnalyzer自定義分詞字典

八、使用IKAnalyzer自定義分詞字典

IKAnalyzer下載地址:https://ik-analyzer.googlecode.com/files/IK%20Analyzer%202012FF_hf1.zip

這裡我使用的是IK Analyzer 2012FF_hf1.zip這個包;因為我用的是solr4.x的;

解壓、檔案拷貝

下載之後用unzip解壓,沒有安裝unzip童鞋安裝下;

解壓之後講IKAnalyzer的jar包拷貝到$SOLR_HOME的lib目錄下;將IKAnalyzer.conf.xml和stopword.dic放到classes目錄下,我這裡的classes目錄是

  1. /data/projects/apprank-solr.zqgame.com/WEB-INF/classes  
重點檔案說明 

* IKAnalyzer.conf.xml主要的作用是用於自定義分詞字典以及停止詞字典的指定;

 * stopword.dic是預設自帶的停止詞,你可以新增自己的停止詞到這個檔案中;

配置

這裡我們只講IKAnalyzer的分詞器配置。其實分詞器的配置大同小異,IKAnalyzer具體配置如下;

  1. <fieldType name="text" class="solr.TextField">     
  2.        <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>     
  3. </fieldType>    
  4. 或者是  
  5. <fieldType name="text_ik" class="solr.TextField">   
  6.        <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>   
  7.        <analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>   
  8. </fieldType>  
如果是其他的分詞器;也是類似,將class修改為對應的分詞處理器類就OK;

配置完fieldType之後,我們將要使用到分詞器的field的type屬性修改為我們新新增fieldType;

  1. <field name="name" type="text_ik" indexed="true"/>  
這樣重啟之後,分詞器就生效了!來看下效果


自定義分詞字典

接下來講下自定義分詞字典,前面我們在重點檔案說明中以及提到了IKAnalyzer.cfg.xml的作用;先來看下這個檔案的內容

  1. [email protected]:/data/projects/clusters/IKAnalyzer$ more IKAnalyzer.cfg.xml   
  2. <?xml version="1.0" encoding="UTF-8"?>  
  3. <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">    
  4. <properties>    
  5.         <comment>IK Analyzer 擴充套件配置</comment>  
  6.         <!--使用者可以在這裡配置自己的擴充套件字典   
  7.         <entry key="ext_dict">ext.dic;</entry>   
  8.         -->  
  9.         <!--使用者可以在這裡配置自己的擴充套件停止詞字典-->  
  10.         <entry key="ext_stopwords">stopword.dic;</entry>   
  11. </properties>  
配置一目瞭然,很簡單;

我們在IKAnalyzer.cfg.xml的同級目錄下新增一個ext.dic的檔案,檔案內新增自己的分詞字典,重啟就可以了!

看下我們的自定義分詞字典ext.dic

  1. 天天跑酷  
  2. 天天愛消除  
  3. 天天  
這裡比較簡單,我只添加了三個自定義分詞,那麼來看下效果把!

大家可以看到效果還不錯。呵呵!