Solr(一): 在 Tomcat7 上安装

创建 solr 安装目录

# mkdir -p /opt/solr

解压缩

# unzip solr.zip -d /opt/solr

这时,可以直接使用 jetty 启动

# cd /opt/solr/example
# java -jar start.jar	

或者部署 war 到 tomcat

cp /opt/solr/example/webapps/solr.war /opt/tomcat/webapps

启动 tomcat,会遇到一个错误

Context [/solr] startup failed due to previous errors

查看 localhost.yyyy-mm-dd.log 会发现是一个 SLF4j 的问题

org.apache.solr.common.SolrException: Could not find necessary SLF4j logging jars. 
If using Jetty, the SLF4j logging jars need to go in the jetty lib/ext directory. 
For other containers, the corresponding directory should be used. 

要解决这个问题,执行以下步骤

# cp /opt/solr/example/lib/ext/* /opt/tomcat/webapps/solr/WEB-INF/lib
# mkdir -p /opt/tomcat/webapps/solr/WEB-INF/classes
# cp /opt/solr/example/resources/log4j.properties /opt/tomcat/webapps/solr/WEB-INF/classes

最后,需要设置 solr/home,这里直接指向 /opt/solr/example/solr,只需要修改 solr 的 web.xml

<env-entry>
   <env-entry-name>solr/home</env-entry-name>
   <env-entry-value>/opt/solr/example/solr</env-entry-value>
   <env-entry-type>java.lang.String</env-entry-type>
</env-entry>   

中文的问题,需要修改 tomcat 的 server.xml,在 Connector 中增加以下参数

URIEncoding="UTF-8" 

这时,可以再次启动 tomcat 了。