Solr學習(2) Solr4.2.0+IK Analyzer 2012

solr列子下載

Solr學習(二) Solr4.2.0+IK Analyzer 2012

開場白:

本章簡單講述如何在solr中配置著名的 IK Analyzer 分詞器。

本章建立在 Solr學習(一)  基礎上進行配置。

通過(一)的介紹,目前已經成功部署好單實例 solr+tomcat 

 

聲明:描述的比較籠統繁瑣,有偏差的地方請大家毫不留情的拍磚尷尬

 

準備工作:

下載 IK Analyzer 2012FF_hf1.zip包。 詳見:IK Analyzer中文分詞器創始人 林良益 博客 

 

名詞解釋:

IK源目錄:解壓縮IK Analyzer 2012FF_hf1.zip後得到的文件夾路徑。解壓縮後得到下圖結構東東




IK三把刀:上圖被選中的3個文件(IKAnalyzer.cfg.xml、IKAnalyzer2012FF_u1.jar、stopword.dic)

Tomcat :以下全部指 tomcat根目錄。(例:E:\\apache-tomcat-6.0.35\\)。

 

開始生產

 

    步驟1:將 IK三把刀”放入目錄...\Tomcat\webapps\solr\WEB-INF\lib中,(注意!這裏此時由於項目原來啓動過一次,webapps下的solr.war包已經被成功發佈部署成文solr文件夾了。所以這裏是在solr文件內打開 WEB-INF\lib目錄, 不然WAR包是不允許放入文件到特定目錄)。

    

     步驟2:開始設置IK分詞器在schema.xml文件中的配置(schema.xml目錄位置在 ...\Tomcat\solrapp\solr\collection1\conf此處的 collection1 是默認的文件夾,有些朋友在先前配置時候會去改變此文件夾名稱,請注意自行匹配);

打開schema.xml文件(儘量使用UE打開,防止亂碼)在<types></types>中增加如下內容

 

<a target=_blank href="http://item.taobao.com/item.htm?_u=gl4f5o5c437&id=39393009617"><span style="font-family:SimSun, 宋體, tahoma, arial, helvetica, sans-serif;font-size:14px;"><a target=_blank href="http://item.taobao.com/item.htm?spm=a1z09.5.0.0.xZsiWo&id=23853332746&_u=tl4f5o5d7e5&qq-pf-to=pcqq.c2c"><fieldType name="text_ik" class="solr.TextField">  
    <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>  
    <analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>  
</fieldType></a></span></a>

 

 

這樣就OK了。 增加了用 IK分詞算法提供的字段類型。 (IK分詞算法的其他擴展配置請自行參考IK算法的配置說明文檔。在“IK三把刀”目錄裏頭的PDF文件裏有。

 

測試階段

 

 可能一些朋友會想看看效果,確認一下IK分詞器成功配置,接下來我們來嘗試測試一下IK分詞效果吧。  

(看到此處的朋友,其實可以跳到看 schema.xml的具體字段說明文章去。 大概瞭解一下schema.xml是幹嘛用的,不過不看也無妨,我們只是爲了證明IK配置成功。)

 

    我們在 schema.xml 文件裏頭。找到如下代碼片段。(schema.xml文件在哪裏?看步驟2 ...

<a target=_blank href="http://item.taobao.com/item.htm?_u=gl4f5o5c437&id=39393009617"><a target=_blank href="http://item.taobao.com/item.htm?spm=a1z09.5.0.0.xZsiWo&id=23853332746&_u=tl4f5o5d7e5&qq-pf-to=pcqq.c2c"><field name="name" type="text_general" indexed="true" stored="true"/></a></a>

    意思是這裏有一個字段標示名字叫做name,類型text_general,這個時候我們把類型改變成剛剛添加的IK類型text_ik; 變成:

 

<a target=_blank href="http://item.taobao.com/item.htm?_u=gl4f5o5c437&id=39393009617"><a target=_blank href="http://item.taobao.com/item.htm?spm=a1z09.5.0.0.xZsiWo&id=23853332746&_u=tl4f5o5d7e5&qq-pf-to=pcqq.c2c"><field name="name" type="text_ik" indexed="true" stored="true"/> </a></a>

   瞎扯:我想看到這裏一些朋友應該就能明白schema.xml幹嘛的吧。Schema.xml 就像一張很大很大的描述索引樣子的表。裏頭有很多字段field,然後要定義字段的類型fieldType。在在field裏頭引用fieldType(有點springIOC的味道 - -..)。 

 

 

啓動tomcat ..

進入solr界面 http://localhost:8080/solr 

 

新手可能對solr的界面還不熟悉。我這裏截圖說明下。

選擇core (這裏沒有默認配置。要去選一個);我們這裏選 collection1



 

 然後再選擇 analysis 

 

 

這個是分詞界面。

選擇剛剛我們針對配置的 name 字段。 然後輸入要分詞的詞語 魔獸世界 ,點按鈕 analyse values會發現出現了分詞爲  “魔獸”“世界”



 
我們再試試其他沒有引用分詞器的字段的分詞效果。 我選擇了 “content” 字段,出現的結果就是全字分詞了(solr默認的一種分詞方式)。



 
結束!!!  

這裏分詞的多樣化根據分詞器來設定。。   個人喜歡使用IK Analyzer分詞器;而且配置SOLR比較方便。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章