tomcat+solr+IK全過程

solr初觸,在用jetty跑通以後,開始在tomcat下進行配置。
首先,下載最新版的solr ,http://apache.dataguru.cn/lucene/solr/4.2.1/

1:將dist目錄下的solr-4.2.0.war 複製到tomcat 下的webapps根目錄,重命名爲solr.war,運行tomcat,solr.war被解壓。

2:在tomcat根目錄(可以是任何目錄)新建文件目錄solr/home,將solr-4.1.0\example下的solr複製到solr/home目錄下,如果要配置多核,只用複製solr-4.1.0\example\multicore下的core0、core1、solr.xml複製到solr/home

3: 找到 webapps\solr\WEB-INF下的web.xml,配置solr/home信息
    <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>D:/apache-tomcat-7.0.34/solr/home</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>


到這裏,就可以測試一下了.運行tomcat,訪問http://127.0.0.1:端口號/solr/admin
如果看到solr的主頁面,並且沒有錯誤信息,說明已經配置成功。


如此,我們來進行更細緻的配置
4:上面有提到多核,配置如下。
複製solr-4.1.0\example\multicore下的core0、core1、solr.xml複製到solr/home,找開
solr.xml,找到cores標籤,默認的配置是core 0、core1.可根據需求進行修改,我
有如下兩個業務,需要兩個不同的core,如下配置。
  <cores adminPath="/admin/cores" host="${host:}" hostPort="${jetty.port:}">
    <core name="EMAIL" instanceDir="email" />
    <core name="IM" instanceDir="im" />
  </cores>

其中,name就是我們訪問時的名稱,instanceDir爲solr/home下的core0、core1,這裏作相應的修改

重啓tomcat,訪問http://127.0.0.1:8089/solr/#/EMAIL
http://127.0.0.1:8089/solr/#/IM  進行測試[/color]

其中,solr/home/EMAIL與IM下,最重要的文件就是schama.xml,所以的索引字段都在這裏面進行配置,主要有兩個標籤<field> 與 <fieldType>
    <schema name="im core im" version="1.1">
        <types>

<fieldtype name="string"  sortMissingLast="true" omitNorms="true"/>
<fieldType name="text_cn">
<analyzer/>
</fieldType>
    </types>
    <fields>
   <field name="id" type="int" indexed="true" stored="true" multiValued="false"/>
   <field name="name" type="text_cn" indexed="true" stored="true" multiValued="true"/>
   <field name="city" type="text_cn" indexed="true" stored="true" multiValued="true"/>
   </fields>

其中,庫名要與當前的庫名匹配<schema name="im core im" version="1.1">, indexed是否建索引,stored是否保存,multiValued是否多個值,根據具體的需求進行配置。


5:上面有個name="text_cn"的類型,這個就是接下來要進行的分詞。
我選擇了IK分詞器。在配置的過程中,遇到一個問題:
java.lang.VerifyError: class org.wltea.analyzer.lucene.IKAnalyzer overrides final method tokenStream.(Ljava/lang/String;Ljava/io/Reader;)Lorg/apache/lucene/analysis/TokenStream;


原因是我最開始用的是IK3.2.8  與 當前solr的版本衝突。重新下載 2012 ff 後問題得到解決。下載地址爲:http://code.google.com/p/ik-analyzer/downloads/detail?name=IK%20Analyzer%202012FF_hf1.zip&can=2&q=


將IKAnalyzer2012FF_u1.jar拷貝到D:\apache-tomcat-7.0.34\webapps\solr\WEB-INF\lib目錄下;
IKAnalyzer.cfg.xml(分詞器擴展配置文件)與stopword.dic(擴展的stopword詞典,3.2以上版本提供)文件放置在代碼根目錄(對於web項目,通常是WEB-INF/classes目錄,同hibernate、log4j等配置文件相同)下即可.


重啓tomcat,進入http://127.0.0.1:8089/solr/#/EMAIL/analysis  (IM同)輸入如:“我是美女屌絲程序員”進行測試。










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