1, 解压solr-4.7.0.zip,copy dist/solr-4.7.0.war 到tomcat/webapp下 (部署), 启动tomcat
发现solr部署失败:在tomcat的控制台上可以看到 < Error filterStart >
解决:将solr-xxx.zip解压后的lib/ext/*.jar,拷贝到tomcat/lib下。这里主要是一些日志相关的jar(log4j等)。
2. Solr部署成功后,访问http://localhost:8080/solr 依然报错
异常:HTTP Status 500 - {msg=SolrCore 'collection1' is not available due to init failure: Could not load config file ...\tomcat7055\bin\solr\collection1\solrconfig.xml,trace=org.apache.solr.common.SolrException: SolrCore 'collection1' is not available due to init failure: Could not load config file ...\tomcat7055\bin\solr\collection1\solrconfig.xml at ...
解决:这里是因为找不到solr core的配置。在webapps\solr\WEB-INF\web.xml:
取消注释设置solr\home
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>F:\\SolrHomeN</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
3. 配置完solr\home后,发现http://localhost:8080/solr可以访问了,但在solr admin界面上依然有异常。
这时可以通过solr 界面的logging来看具体的异常:
Caused by: java.lang.ClassNotFoundException: org.apache.solr.handler.dataimport.DataImportHandler
at java.lang.Class.forName(Class.java:219)
at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:454)
... 18 more
解决:这时因为在solrconfig.xml里配置了:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">F:/SolrHomeN/runlog/conf/data-config.xml</str>
</lst>
</requestHandler>
将dist/solr-dataimporthandler-4.7.0.jar和dist/solr-dataimporthandler-extras-4.7.0.jar copy到webapps\solr\WEB-INF\lib下。
4. 至此,solr已经部署完成,可以通过界面正常访问了。
(solr home目录的准备工作暂时未详细介绍)
Solr 自带的logging还是很强大的。一定要根据logging, 找出问题,解决问题。