第一步,从http://www.apache.org/dyn/closer.cgi/lucene/solr/4.8.1 下载安装包。
第二步,解压ZIP文件,得到\solr-4.8.1的文件夹
第三步,在solr-4.8.1\dist目录下,找到solr-4.8.1.war,复制到Tomca的webapps目录下,重命名为solr.war
第四步,启动tomcat。 solr.war自动解包出solr文件夹。
注意:此时TOMCAT部署SOLR失败,无法打开http://localhost:8080/solr/
第五步,关闭tomcat。
第六步,删除webapps目录下面的solr.war包。将solr-4.8.1\solr-4.8.1\example下面的solr目录复制到tomcat的webapps/solr下面。下面的目录结构大概是这样的webapps/solr/solr/collection1类似这样的。
第七步,打开webapps/solr/WEB-INF/web.xml文件,在里面添加如下内容(文件内已经有上述内容,要去掉注释<!--- ---->)。env-entry-value这个目录是指向上一个步骤中的目录。这里使用的是相对目录(相对于tomcat的bin目录),也可以使用绝对路径,如d:/solr等。目录不一定要位于tomcat中,只要此步骤中将路径配置正确即可。
<env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>../webapps/solr/solr</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
此时启动TOMCAT部署SOLR仍然会失败,原因是缺少JAR包。
第八步, 复制example/lib/ext目录中的jar包到项目的classpath下,这里的example就是前面解压solr压缩包得到的,solr应用war包也是从该目录下得到的;我们可以将这些jar包放到%TOMCAT_HOME%/lib下,也可以将它们放到项目的lib下(例如,webapps/solr/WEB-INF/lib);
第九步,将example/resources/log4j.properties也拷到classpath(例如,webapps/solr/目录下新建了一个classes目录,放log4j.properties放了进去);
此时启动TOMCAT不会报错,可以访问http://localhost:8080/solr/
但是,查询时仍然报错如下:
HTTP Status 500 - Severe errors in solr configuration. Check your log files for more detailed information on what may be wrong. If you want solr to continue after configuration errors, change: <abortOnConfigurationError>false</abortOnConfigurationError> in solr.xml
-------------------------------------------------------------
org.apache.solr.common.SolrException: Error loading class 'solr.VelocityResponseWriter'
at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:389)
at org.apache.solr.core.SolrCore.createInstance(SolrCore.java:425)
at org.apache.solr.core.SolrCore.createInitInstance(SolrCore.java:447)
解决方法:
修改solr\solr\collection1\conf下的solrconfig.xml,如果不需要使用velocityresponsewriter,则设置:
<queryResponseWriter name="velocity" class=solr.VelocityResponseWriter" enable="false"/> (已经经过测试)
如果需要使用,首先解压得到的solr-4.8.1\contrib中的jar包(比如contrib\velocity\lib中的jar包放到项目lib中,然后修改solrconfig.xml中的
<lib dir="../../contrib/velocity/lib" />
指向项目lib目录。 (未经过测试)
参考文章:http://blog.csdn.net/zhyh1986/article/details/9856115
http://www.huqiwen.com/2012/12/03/solr4-tomcat-deploy-and-how-to-use-solrj/
http://serverfault.com/questions/336158/org-apache-solr-common-solrexception-error-loading-class-solr-velocityresponse