本人对jetty不熟悉,而且看到默认的文件目录结果有点松散,更喜欢集中管理的模式,决定用tomcat来部署solr。
准备
- solr 6.6.0 版本
- tomcat 9.0 windows 安装版
- jdk 1.8
部署
- 安装Tomcat,这里采用的是安装版,安装目录选择F:\Tomcat 9.0,如下图:
- 解压solr 6.6.0,如下图:
- 复制server文件夹下的solr-webapp\webapp到tomcat的webapps,并将重命名为solr;
- 复制server\lib\ext下的jar到tomcat\webapps下的solr项目的WEB-INF\lib中;
- 复制dist文件夹中solr-dataimporthandler-6.6.0.jar和solr-dataimporthandler-extras-6.6.0.jar包到tomcat\webapps下的solr项目的WEB-INF\lib中;
- 复制server\lib下的所有带metrics的jar包到tomcat\webapps下的solr项目的WEB-INF\lib中;
- 复制example\example-DIH下的solr文件夹到tomcat\webapps下的solr项目根目录中,并命名为solrhome(名字任意起,并无限制)。所谓的solrhome目录实际上是一个运行的Solr实例所对应的配置和数据(Lucene索引)。如要新建solr core,在solrhome下新建new_core文件夹,new_core为一个新实例。将server\solr下的solr.xml拷贝到solrhome目录下。如图新建JobSeeker实力:
在JobSeeker下新建data文件夹,将server\solr\configsets\basic_configs下的conf拷到Jobseeker目录;
配置web.xml,打开Tomcat 9.0\webapps\solr\WEB-INF下的web.xml,找到如下代码:
<!-- People who want to hardcode their "Solr Home" directly into the WAR File can set the JNDI property here... --> <!-- <env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>/put/your/solr/home/here</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry> -->
去掉
<env-entry>....</env-enry>
的注释,并将/put/your/solr/home/here
改成solrhome的路径,如下:<!-- People who want to hardcode their "Solr Home" directly into the WAR File can set the JNDI property here... --> <env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>F:\Tomcat 9.0\webapps\solr\solrhome</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
解决权限问题,依然打开Tomcat 9.0\webapps\solr\WEB-INF下的web.xml,在文件后面找到如下代码:
<!-- Get rid of error message --> <security-constraint> <web-resource-collection> <web-resource-name>Disable TRACE</web-resource-name> <url-pattern>/</url-pattern> <http-method>TRACE</http-method> </web-resource-collection> <auth-constraint/> </security-constraint> <security-constraint> <web-resource-collection> <web-resource-name>Enable everything but TRACE</web-resource-name> <url-pattern>/</url-pattern> <http-method-omission>TRACE</http-method-omission> </web-resource-collection> </security-constraint>
将
<security-constraint>***</security-constraint>
注释掉;复制server\resources下的log4j.properties 到Tomcat \webapps\solr\WEB-INF\下的classes文件夹中,如果没有classes文件夹,则手动创建;
补充:
1.server\solr\configsets\basic_configs\conf
路径下也带有配置solrcore的配置文件的样本;到这里算是部署完毕,记录一下,以后方便查阅。