solr学习入门---积分商城基于Solr的搜索引擎优化

来源:互联网 发布:动物域名 单词 编辑:程序博客网 时间:2024/05/16 01:32

一、准备
1. 服务器:46,36
2. 用户:admin
3. 文件:jdk1.6,tomat7,solr3.6

二、创建目录并上传解压
usr/local/solr
usr/local/solr/install

tar -xzf apache-solr-3.6.2.tgz
tar -xzf apache-tomcat-7.0.42.tar.gz
unzip -d IKAnalyzer2012 IKAnalyzer2012.zip

三、创建实例
mkdir /usr/local/solr/solr1
cp -r apache-tomcat-7.0.42/ /usr/local/solr/solr1/tomcat
cp -r solr /usr/local/solr/solr1/solrhome
cp apache-solr-3.6.2/example/webapps/solr.war /usr/local/solr/solr1/tomcat/webapps/solr.war

四、配置tomcat

vi server.xml
################################
<Connector port="9080" URIEncoding="UTF-8" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxThreads="1000" minSpareThreads="100" maxSpareThreads="200" acceptCount="1000"/>
<Server port="8006" shutdown="SHUTDOWN">
################################

vi catalina.sh
################################
export JAVA_HOME=/usr/local/jdk1.6.0_33
export SOLR_HOME=/usr/local/solr/solr1
export JAVA_OPTS="$JAVA_OPTS -server -Xmx1024m -Xms512m -Dsolr.solr.home=$SOLR_HOME/solrhome/"
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib
export CATALINA_HOME=$SOLR_HOME/tomcat
export CATALINA_BASE=$SOLR_HOME/tomcat
################################


cp IKAnalyzer2012.jar /usr/local/solr/solr1/tomcat/webapps/solr/WEB-INF/lib/
cp IKAnalyzer.cfg.xml /usr/local/solr/solr1/tomcat/webapps/solr/WEB-INF/classes
cp stopword.dic /usr/local/solr/solr1/tomcat/webapps/solr/WEB-INF/classes

五、配置solr
vi schema.xml
################################
<!-- IKAnalyzer-->
<fieldType name="my_text" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
################################
<!-- WareInfoPortal-->
<field name="wareCode" type="string" indexed="true" stored="true" />
<field name="wareName" type="my_text" indexed="true" stored="true" />
<field name="wareIntegralValue" type="long" indexed="true" stored="true" />
<field name="gcur" type="long" indexed="true" stored="true" />
<field name="mcur" type="long" indexed="true" stored="true" />
<field name="ecur" type="long" indexed="true" stored="true" />
<field name="mainPic" type="string" indexed="true" stored="true" />
<field name="funcDesc" type="my_text" indexed="true" stored="true" />
<field name="exchangeId" type="long" indexed="true" stored="true" />
<field name="exchangeMode" type="string" indexed="true" stored="true" />
<field name="alias" type="string" indexed="true" stored="true" />
<field name="bakCol1" type="string" indexed="true" stored="true" />
<field name="deliverType" type="string" indexed="true" stored="true" />
<field name="isSearch" type="string" indexed="true" stored="true" />
<field name="isHtmlChannel" type="string" indexed="true" stored="true" />
<field name="wareStatus" type="string" indexed="true" stored="true" />
<field name="provinceCode" type="string" indexed="true" stored="true" />
<field name="searchHot" type="string" indexed="true" stored="true" />
<field name="logisticIntegral" type="string" indexed="true" stored="true" />
<field name="typeCode" type="long" indexed="true" stored="true" />

<field name="mKind" type="string" indexed="true" stored="true" />
<field name="mName" type="string" indexed="true" stored="true" />
<field name="sKind" type="string" indexed="true" stored="true" />
<field name="sName" type="string" indexed="true" stored="true" />
<field name="bKind" type="string" indexed="true" stored="true" />
<field name="bName" type="string" indexed="true" stored="true" />

<field name="wareHouseId" type="string" indexed="true" stored="true" />
<field name="wareStorageType" type="string" indexed="true" stored="true" />
<field name="isAllowDonation" type="string" indexed="true" stored="true" />
<field name="wareBrandId" type="string" indexed="true" stored="true" />
<field name="openDate" type="date" indexed="true" stored="true" />
<field name="keyWords" type="string" indexed="true" stored="true" />
<field name="shopPrice" type="string" indexed="true" stored="true" />
<field name="discount" type="string" indexed="true" stored="true" />
<field name="saleAmount" type="string" indexed="true" stored="true" />
<field name="commentCount" type="string" indexed="true" stored="true" />
<field name="commentValue" type="string" indexed="true" stored="true" />
<field name="isClientChannel" type="string" indexed="true" stored="true" />
<field name="packingList" type="string" indexed="true" stored="true" />
<field name="safeGuard" type="string" indexed="true" stored="true" />

六、配置主从

主服务器的solrconfig.xml文件中加入:
目前设置的同步周期为一分钟,具体可视生产环境的具体环境而定。
<!-- Master-->
<requestHandler name="/replication" class="solr.ReplicationHandler">
<lst name="master">
<str name="replicateAfter">startup</str>
<str name="replicateAfter">commit</str>
<str name="replicateAfter">optimize</str>
<str name="confFiles">schema.xml,solrconfig_slave.xml:solrconfig.xml</str>
<str name="commitReserveDuration">00:01:00</str>
</lst>
</requestHandler>

从服务器的solrconfig.xml文件中加入:
<!-- Slave-->
<requestHandler name="/replication" class="solr.ReplicationHandler">
<lst name="slave">
<str name="masterUrl">http://xxxxxxx:9080/solr/${solr.core.name}/replication</str>
<str name="pollInterval">00:01:00</str>
<str name="compression">internal</str>
<str name="httpConnTimeout">1000</str>
<str name="httpReadTimeout">2000</str>
</lst>
</requestHandler>

七、创建软连接
ln -s /usr/local/solr/solr1 solr1


八、复制实例
scp -r /usr/local/solr/ admin@xxxxxxxx:/usr/local/solr/
更改