由于工作中接触了一点Solr ,觉得蛮有意思的,而且电商也经常用到,所以自己整理了下网上资料,遇到问题记录下来。
http://blog.csdn.net/jiangchao858/article/category/6403235
http://blog.csdn.net/upxiaofeng/article/category/6231469/1
主要参考博客,还有再看solr实战。
####################################################################
准备工作:
目前最新版本6.0。下载solr 6.0:
JDK8 下载jdk1.8:【solr6.0是基于jdk8开发的】
tomcat8.0 下载:
##################################
在说明搭建环境之前,其实solr5.0之后 solr已经内置jetty服务器,可以自行启动。但是为了加入自己的特性,
以及在solr基础之上的应用,此文章主要针对发布在tomcat8上。
##################################
1、安装jdk8
2、下载solr6.0后,解压solr6.0的包。
3、解压tomcat8
4、将【solr-6.0.0\server\solr-webapp】下的webapp文件拷贝到【apache-tomcat-8.0.33\webapps】目录下,
并将webapp重命名为solr(可以重命名为取任意名称)。
solr文件目录如下:
5、将【solr-6.0.0\server\lib\ext】下的所有jar包拷贝到【apache-tomcat-8.0.33\webapps\solr\WEB-INF\lib】
6、将【solr-6.0.0\server\resources】下的log4j.properties配置文件拷贝到【apache-tomcat-8.0.33\webapps\solr\WEB-INF\classes】,如果WEB-INF下没有classes文件那么 就创建一个classes文件夹。
7、在【apache-tomcat-8.0.33\webapps\solr】下新建一个文件【solrhome(文件夹名称可以任意命名)】,将【solr-6.0.0\server\solr】下的所有文件拷贝到刚刚创建
的solrhome中。
文件中包含如下:
8、修改【apache-tomcat-8.0.33\webapps\solr\WEB-INF】下的web.xml,找到如下代码:
默认是注解掉,放开注解,并将中的值修改为刚刚步骤7中的solrhome目录,如:E:\project\Search\apache-tomcat-8.0.33\webapps\solr\solrhome
9、运行tomcat,运行成功后访问:http://localhost:8080/solr/index.html 即可得到如下界面:
那么整个solr的环境搭建已经成功。
常见问题:
404:
dist目录下的solr-dataimporthandler-6.2.0.jar及solr-dataimporthandler-extras-6.2.0.jar也需要拷贝到【apache-tomcat-8.0.33\webapps\solr\WEB-INF\lib】。
其中遇到了404,看tomcat的日志原因是 java.lang.NoClassDefFoundError: com/codahale/metrics/MetricSet,再把solr-6.4.2/server/lib下的metrics-core-3.1.2.jar,metrics-ganglia-3.1.2.jar,metrics-graphite-3.1.2.jar,metrics-jetty9-3.1.2.jar,metrics-jvm-3.1.2.jar这几个jar包放到tomcat的solr项目的WEB-INF/lib目录下j就好了
403:
可参见http://www.cnblogs.com/freefenglei/articles/5175202.html中的方法,亲测可行。另外需要把web.xml中原来存在的两个节点删掉
关于文件路径,Solr采用的是linux的文件路径标准,使用的是“/”,而在win系统中,默认的文件路径使用的是“\”,如果你在设置solr_home或者日志路径的时候,直接复制的路径,需要把“\”改为“/”,这样才能正确识别。
很多人留言,直接访问http://localhost:8080/solr,为什么是404, 一直以为他们没有配置正确,找了好久发现,在web.xml文件中,最后的默认配置文件路径不对,如果你想直接用官网推荐的访问方式http://localhost:8080/solr,而不是http://localhost:8080/solr/index.html,你可以将web.xml的欢迎页面路径更新一下:在index.html前面加个“/”。
网友评论