应项目经理要求,我们项目需要做搜索的功能。搜索这块的任务交给了我,技术方案是Solr。于是花了一下午时间在比较新的tomcat下装起了一个目前最新的solr。
安装步骤:
首先弄到tomcat和solr4.6的包,这自不必说!然后将solr解压在:F:solrsolr-4.6.0这下面,将tomcat解压在:F:solrtomcat7.0.27。同时新建一个solr运行用的文件夹:F:solrSolrHome。并将下载的solr包中的example/solr文件夹下面的所有文件放入到F:solrSolrHome。同时将solr包里面的:F:solrsolr-4.6.0distsolr-4.6.0.war复制到tomcat里面的webapps文件夹下面,同时改名为solr.war。
在tomcat的conf/Catalina/localhost下添加solr.xml文件,文件内容如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Context docBase="F:solrtomcat7.0.27webappssolr.war" debug="0" crossContext="true" > <Environment name="solr/home" type="Java.lang.String" value="F:solrSolrHome" override="true" /> </Context>
docbase是solr的war包的绝对地址,value是solr的运行环境。
双击tomcat的startup.bat,这是tomcat会报错!
[SetContextPropertiesRule]{Context} Setting property 'debug' to '0' did not find a matching property. 2013-12-26 20:02:57 org.apache.catalina.core.StandardContext startInternal 严重: Error filterStart 2013-12-26 20:02:57 org.apache.catalina.core.StandardContext startInternal 严重: Context [/solr] startup failed due to previous errors
但是这个日志让人很蛋疼,就报了个错,啥都没有,最狠这种日志了!!
在tomcat的logs文件夹下面查了下localhost.2013-12-26.log这个日志文件,才找到了问题的症结!
2013-12-26 20:02:57 org.apache.catalina.core.StandardContext filterStart 严重: Exception starting filter SolrRequestFilter 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. For more information, see: http://wiki.apache.org/solr/SolrLogging at org.apache.solr.servlet.SolrDispatchFilter.<init>(SolrDispatchFilter.java:111) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
这不就是缺jar包嘛!!缺slf4j.jar。果断把F:solrsolr-4.6.0examplelibext这个路径下的所有slf4j相关的jar包拷进了F:solrtomcat7.0.27webappssolrWEB-INFlib这个文件夹,也就是应用的lib文件夹下。同时把solr包下的F:solrsolr-4.6.0exampleresourceslog4j.properties这个日志文件拷近F:solrtomcat7.0.27webappssolrWEB-INFclasses。
重启tomcat!我的solr跑起来了!哈哈!回家。