本文默认tomcat已安装好
- Tomcat版本:Apache Tomcat/9.0.2
- Solr版本:4.7.2
- JDK:jdk1.8.0_91(Solr4.10.3要求jdk使用1.7以上)
1. 下载Solr
在Solr官网中下载solr,我下的是4.7.2。(这里会默认跳转到新版本页面,在跳转之前找到旧版本即可)
解压后目录如下:
2. 移动solr并改名
mv ~/Downloads/solr-4.7.2/example/solr/ /usr/local/
mv /usr/local/solr /usr/local/solrhome
example/solr是一个solrhome目录结构,solrhome是Solr运行的主目录,目录中包括了运行Solr实例所有的配置文件和数据文件。故将其单独拿出来作为solrhome。
solrhome中的“collection1”是一个SolrCore(Solr实例)目录。一个solr运行实例对外单独提供索引和搜索接口,一个solr的运行实例对应一个索引目录。solrhome中可以创建多个solr运行实例SolrCore。每个solrcore提供单独的搜索和索引服务。conf是SolrCore的配置文件目录 。data目录存放索引文件需要创建。
3. 移动solr的war包并改名
mv ~/Downloads/solr-4.7.2/dist/solr-4.7.2.war /usr/local/tomcat/webapps/solr.war
由于~/Downloads/solr-4.7.2/dist里包含build过程中产生的war和jar文件,以及相关的依赖文件。而我们需要运行在tomcat环境下,所以需要将其中solr编译需要的war文件移动到tomcat的webapps中去。
重启一下tomcat,发现webapps文件夹里会多solr这个目录。
编辑这个目录下的web.xml,找到<env-entry>这一段编辑成:
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/usr/local/solrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
这是因为需要将solrhome文件的位置配置放在web.xml上。
4. 所有的jar包添加到solr工程
将~/Downloads/solr-4.7.2/example/lib/ext/文件夹里的所有jar文件移动到/usr/local/apache-tomcat-7.0.27/lib文件夹。
mv ~/Downloads/solr-4.7.2/example/lib/ext/jcl-over-slf4j-1.6.6.jar /usr/local/tomcat/lib
mv ~/Downloads/solr-4.7.2/example/lib/ext/jul-to-slf4j-1.6.6.jar /usr/local/tomcat/lib
mv ~/Downloads/solr-4.7.2/example/lib/ext/log4j-1.2.16.jar /usr/local/tomcat/lib
mv ~/Downloads/solr-4.7.2/example/lib/ext/slf4j-api-1.6.6.jar /usr/local/tomcat/lib
mv ~/Downloads/solr-4.7.2/example/lib/ext/slf4j-log4j12-1.6.6.jar /usr/local/tomcat/lib
5. 重启tomcat,测试是否配置成功
重启tomcat,在浏览器中输入http://localhost:8080/solr/,若出现如下画面则配置成功: