由於solr是java開發的, 所以安裝之前必須安裝jdk, 並且使用tomcat作爲web容器, 所以也得先安裝tomcat .
開始安裝
- 上傳solr-4.10.3.tgz.tgz到linux指定目錄(/usr/local/application), 並且解壓.
tar -zxvf solr-4.10.3.tgz.tgz
- 創建目錄”/usr/local/application/solr” ( 本人習慣將所有軟件安裝在/usr/local/application下), 後面我們將solrhome和tomcat都放在solr目錄下.
安裝tomcat到/usr/local/application/solr目錄下
將solr.war放入tomcat中, 並啓動.
複製”/usr/local/application/solr-4.10.3/dist”下的solr-4.10.3.war到tomcat中.
執行
“cp /usr/local/application/solr-4.10.3/dist/solr-4.10.3.war /usr/local/application/solr/tomcat/webapps/solr.war”
啓動tomcat,就會在tomcat下出現solr一個工程目錄(關閉tomcat之後, 可以將solr.war刪除)- 將solr-4.10.3/example/lib/ext目錄下的所有的jar包,添加到solr工程中
執行命令:cp /usr/local/application/solr-4.10.3/example/lib/ext/* /usr/local/application/solr/tomcat/webapps/solr/WEB-INF/lib/ - 創建solrhome
在”/usr/local/application/solr”下創建solrhome目錄, 複製/usr/local/application/solr-4.10.3/example中的solr(這個目錄就是一個solrhome)到solrhome中,
cp -rf /usr/local/application/solr-4.10.3/example/solr /usr/local/application/solr/solrhome/ - 修改web.xml指定solrhome位置.
修改solr工程下的web.xml文件, 指定solrhome位置
- 啓動tomcat訪問solr工程
配置業務域
- 將中文分詞器添加到工程中
將分詞器jar包放入lib中:
cp ./IKAnalyzer2012FF_u1.jar /usr/local/application/solr/tomcat/webapps/solr/WEB-INF/lib/
將擴展詞典、配置文件放到solr工程的WEB-INF/classes目錄下(如果不存在classes目錄就創建)
cp ext_stopword.dic IKAnalyzer.cfg.xml mydict.dic /usr/local/application/solr/tomcat/webapps/solr/WEB-INF/classes - 配置一個FieldType,指定使用IKAnalyzer
修改”/usr/local/application/solr/solrhome/solr/collection1/conf”目錄下的schema.xml添加FieldType:
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
- 配置業務域,type制定使用自定義的FieldType。
“type=text_ik”說明使用我們添加的FieldType,會進行中文分詞, 而”type=string”會索引但不會進行中文分詞
<field name="item_title" type="text_ik" indexed="true" stored="true"/>
<field name="item_sell_point" type="text_ik" indexed="true" stored="true"/>
<field name="item_price" type="long" indexed="true" stored="true"/>
<field name="item_image" type="string" indexed="false" stored="true" />
<field name="item_category_name" type="string" indexed="true" stored="true" />
<field name="item_desc" type="text_ik" indexed="true" stored="false" />
<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="item_title" dest="item_keywords"/>
<copyField source="item_sell_point" dest="item_keywords"/>
<copyField source="item_category_name" dest="item_keywords"/>
<copyField source="item_desc" dest="item_keywords"/>
- 重啓tomcat