Solr部署到tomcat,通过war包
1、下载tomcat服务器,解压
2、下载Solr,解压,我这里下的是3.6版本的
3、到Solr的dist目录下将apache-solr-3.6.0.war拷贝到tomcat服务器的webapps目录下
4、将Solr\example下面的multicore拷贝到tomcat\conf下面
multicore目录下面包含了Solr的基本配置。Solr支持配置多个实例,亦即,可以启动多个实例来服务于前端不同的搜索请求,每个实例对应一个core,而这样多个core的配置是通过multicore\solr.xml进行配置的,然后在multicore下面的每个目录中对应着每个core的详细配置,具体包括schema.xml(配置与Lucene的Field、Analyzer等相关的内容)、solrconfig.xml(这个是Solr实例核心的配置)
另外,如果在solrconfig.xml中没有指定<dataDir>索引目录配置,则默认会生成tomcat\conf\multicore\data\index目录,该目录下面存储索引文件
5、配置WAR程序的Context:在tomcat\conf\Catalina\localhost下面(如果目录不存在,则手动创建),创建文件apache-solr-3.6.0.xml
Context配置文件apache-solr-3.6.0.xml的内容如下所示:
<Context docBase="${catalina.home}/webapps/apache-solr-3.6.0.war" debug="0" crossContext="true" > <Environment name="solr/home" type="java.lang.String" value="${catalina.home}/conf/multicore" override="true" /> </Context>
docBase指定了我们的WAR文件的位置,上面的"solr/home"非常关键,在Web容器启动以后会加载Solr的基本配置并初始化相应的组件实例,它会根据指定的"solr/home"配置的路径去搜索相关的配置,例如,上面我们将"solr/home"指向了目录tomcat\conf\multicore
6、设置Solr的字符集;
默认Solr使用了UTF-8字符集编码,如果你的Tomcat不是的话,在执行中文搜索的时候可能会出现乱码。如果你的Tomcat默认8080端口请求字符集就是UTF-8,并且想使用这个默认的端口提供搜索服务,则可以修改tomcat\conf\server.xml文件的内容,如下所示:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" />
上面我们增加了一个URIEncoding="UTF-8"的配置。
如果想使用一个新的未被占用的端口,则可以在tomcat\conf\server.xml中增加一个配置,例如使用8888端口,配置内容如下所示:
<Connector port="8888" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" />
7、启动tomcat测试,在浏览器地址栏这种输入http://localhost:8080/apache-solr-3.6.0/