2012年12月16日,solr4.0正式版發佈,因爲其新功能比較給力(特別是關於分佈式的新特性,關聯zookeeper等),因此準備替換掉老版本java
官網下載solr4.0:http://lucene.apache.org/solr/linux
mmseg4j分詞下載:http://code.google.com/p/mmseg4j/downloads/listweb
詞庫下載:http://code.google.com/p/mmseg4j/downloads/detail?name=data.zip&can=2&q=
系統:centos 6.2(64位)centos
ip地址:192.168.1.124tomcat
tomcat:apache-tomcat-7.0.29bash
下載完成後就開始正式配置了cookie
一.安裝準備app
調整系統參數webapp
在/etc/sysctl.conf配置文件中增長以下內核參數
- net.ipv4.tcp_tw_reuse = 1
- net.ipv4.tcp_tw_recycle = 1
- net.ipv4.tcp_fin_timeout = 5
而後sysctl -p查看一下
附:net.ipv4.tcp_syncookies = 1參數在centos6.2中自己就有,因此我沒有加,沒有的可本身手動填上
二.安裝及配置過程
1.安裝tomcat
不作演示,詳情見:http://5142926.blog.51cto.com/5132926/960900
修改tomcat配置文件/conf/server.xml
<Connector port="8093" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8" />
附:即填上utp-8防止中文亂碼
2.安裝配置solr
(1).解壓下載的apache-solr-4.0.0,在他的dist目錄下有個文件叫作apache-solr-4.0.0.war,將這個文件拷貝到tomcat的webapps/目錄下,並重命名爲solr.war
(2).新建/opt/solr-tomcat/solr文件夾,把下載的solr包中的example/solr文件夾下面的全部文件放入到 /opt/solr-tomcat/solr裏面
(3).1) 最後一步 配置添加solr.home環境變量,能夠有二種方式(兩種取其一便可):
a)基於環境變量
linux在當前用戶的環境變量中(.bash_profile)或在./bin/catalina.sh中添加以下環境變量:
- export JAVA_OPTS="$JAVA_OPTS -Dsolr.solr.home=/opt/solr-tomcat/solr"
b)基於JNDI
在tomcat的conf文件夾創建Catalina文件夾,而後在Catalina文件夾中在創建localhost文件夾,在該文件夾下面創建 solr.xml,Xml代碼:
- <Context docBase="/usr/local/tomcat/webapps/solr.war" debug="0" crossContext="true" >
- <Environment name="solr/home" type="java.lang.String" value="/opt/solr-tomcat/solr" override="true" />
- </Context>
附:以上路徑都要相互對應
(4).驗證安裝
訪問http:192.168.1.124:8093/solr
附:tomcat默認端口8080,固然我這裏改爲了8093,你們注意一下
三.中文分詞配置
1.將下載到的mmseg4j-1.9.0.v20120712-SNAPSHOT.zip解壓,將其目錄下的mmseg4j-all-1.9.0.v20120712-SNAPSHOT.jar拷貝到tomcat中webapps/solr/WEB-INF/lib中
2.在/opt/solr-tomcat/solr目錄下新建dic文件夾,將解壓後的data目錄下的words.dic拷貝到/opt/solr-tomcat/solr/dic目錄下
3.更改schema.xml(/opt/solr-tomcat/solr/collection1/conf)文件,使分詞器起到做用
- <types>
- ……
- <!--mmseg4j field types-->
- <fieldType name="textComplex" class="solr.TextField" positionIncrementGap="100" >
- <analyzer>
- <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="/opt/solr-tomcat/solr/dic"/>
- <filter class="solr.LowerCaseFilterFactory"/>
- </analyzer>
- </fieldType>
- <fieldType name="textMaxWord" class="solr.TextField" positionIncrementGap="100" >
- <analyzer>
- <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" dicPath="/opt/solr-tomcat/solr/dic"/>
- <filter class="solr.LowerCaseFilterFactory"/>
- </analyzer>
- </fieldType>
- <fieldType name="textSimple" class="solr.TextField" positionIncrementGap="100" >
- <analyzer>
- <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="/opt/solr-tomcat/solr/dic"/>
- <filter class="solr.LowerCaseFilterFactory"/>
- </analyzer>
- </fieldType>
- ……
- </types>
- <fields>
- ……
- <field name="simple" type="textSimple" indexed="true" stored="true" multiValued="true"/>
- <field name="complex" type="textComplex" indexed="true" stored="true" multiValued="true"/>
- <field name="text" type="textMaxWord" indexed="true" stored="true" multiValued="true"/>
- ……
- </fields>
- <copyField source="simple" dest="text"/>
- <copyField source="complex" dest="text"/>
附:dicPath="/opt/solr-tomcat/solr/dic"是你本身的詞庫路徑
4.重啓tomcat
訪問http:192.168.1.124:8093/solr
點擊下方的collection1,其中有個analysis,點擊,以下圖
在Field Value (Index)中隨便輸入幾行漢字,類型選擇complex進行解析
至此,完工,關聯分佈式還在探索ing,後續......