Docker搭建Solr-IKAnalyzer
soft文件下目錄結構
首先編寫Dockerfile
FROM tomcat
ADD soft /usr/local/src/
WORKDIR /usr/local/src/
RUN tar -zxf solr.tar.gz && \
rm solr.tar.gz && \
mv solr-4.10.3.war ../tomcat/webapps/solr.war && \
../tomcat/bin/startup.sh && \
sleep 10 && \
../tomcat/bin/shutdown.sh && \
rm ../tomcat/webapps/solr.war && \
mv solr ../tomcat/webapps/solr/solr-home && \
mv web.xml ../tomcat/webapps/solr/WEB-INF/ && \
rm /usr/local/tomcat/webapps/solr/solr-home/collection1/conf/schema.xml && \
mv schema.xml /usr/local/tomcat/webapps/solr/solr-home/collection1/conf/ && \
mv ext/* ../tomcat/webapps/solr/WEB-INF/lib/ && \
rm -rf ext && \
tar -zxf IK\ Analyzer\ 2012FF_hf1.tar.gz && \
rm IK\ Analyzer\ 2012FF_hf1.tar.gz && \
mv IK\ Analyzer\ 2012FF_hf1/IKAnalyzer2012FF_u1.jar ../tomcat/webapps/solr/WEB-INF/lib/ && \
mkdir ../tomcat/webapps/solr/WEB-INF/classes && \
cd IK\ Analyzer\ 2012FF_hf1 && \
mv IKAnalyzer.cfg.xml ext_stopword.dic mydict.dic ../../tomcat/webapps/solr/WEB-INF/classes/ && \
cd .. && \
rm -rf IK\ Analyzer\ 2012FF_hf1
EXPOSE 8080
這裏這個schema.xml需要修改成我們需要的(主要是在分詞器和域)
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
<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"/>
創建docker鏡像:
docker build -t nelsoner/solr .
啓動這個docker鏡像:
docker run --name tomcat -p 8080:8080 nelsoner/solr
以交互的方式進入容器內部:
docker exec -it tomcat /bin/bash
修改後的schema.xml複製到docker容器中:
docker cp schema.xml tomcat:/usr/local/tomcat/webapps/solr/solr-home/collection1/conf
到這裏就基本結束了!