?????? 最近在学习solr,碰到了不少问题。我学习solr的第一期目标是能把solr和tomcat搞在一起,并且可以对数据库中的一张表建立一个全索引。
?????? 第一步,将solr部署进tomcat。
?????? 我有下载好的tomcat6.0与solr-3.6.2,我要使用的服务器系统是linux,具体不清楚是什么版本的linux。把solr部署在tomcat上的步骤完全按照solr官网的教程(http://wiki.apache.org/solr/SolrTomcat)。之前看到许多人写的教程,除去大部分内容雷同之外,步骤也稍嫌繁琐,而且没说清楚solr和tomcat的版本。我按照官网的教程部署是可行的,并且官网的部署步骤很精炼,所以我建议初学者可以看懂官网教程的话尽量按照官网教程去做。教程转述如下:
??????? 1,服务器的/usr/local目录下有一个安装好的tomcat,命名为tomcat-solr-blog。当然可以取更专业的名字。那么所谓的$CATALINA_HOME其实就是/usr/local/tomcat-solr-blog这个文件夹。
??????? 2,你已经下载好了solr-3.6.2的包,找到其中的apache-solr-3.6.2\example\solr,将solr这个包拷贝到$CATALINA_HOME下,相当于在tomcat-solr-blog根目录下多了一个solr文件夹,里面是bin,conf,lib等等。那么此时所谓的$SOLR_HOME,其实就是这个solr文件夹,全路径就是/usr/local/tomcat-solr-blog/solr。再接再历我们把solr下载包中的\apache-solr-3.6.2\dist\apache-solr-3.6.2.war拷贝到$SOLR_HOME中,并将其重命名为solr.war。做完这步之后相当于在/usr/local/tomcat-solr-blog/solr下多了一个solr.war。
?????? 3,在完成了以上的两个copy步骤后就需要相应的更改一下几个配置文件。首先找到$SOLR_HOME/conf/solrconfig.xml,找到其中的<dataDir>${solr.data.dir:}</dataDir>,将其值指定为/usr/local/tomcat-solr-blog/solr/data,修改好后为<dataDir>${solr.data.dir:/usr/local/tomcat-solr-blog/solr/data}</dataDir>。
?????? 4,继续写配置文件。现在我们要告诉tomcat,哪个是solr的docBase,哪个是$SOLR_HOME。这里我只明白了docBase,$SOLR_HOME的机制是需要研究tomcat的,暂时我也不懂。配置文件的编写方法如下:先在$CATALINA_HOME/conf/Catalina/localhost/下新建一个文件solr-example.xml,其内容为:
<?xml version="1.0" encoding="utf-8"?> <Context docBase="/usr/local/tomcat-solr-blog/solr/solr.war" debug="0" crossContext="true"> <Environment name="solr/home" type="java.lang.String" value="/usr/local/tomcat-solr-blog/solr" override="true"/> </Context>
??????? 5,稍微修改一下tomcat的server.xml,改变一下solr工程的端口。找到/usr/local/tomcat-solr-blog/conf下的server.xml,修改其中的内容如下:
<Connector port="8983" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="7010" URIEncoding="UTF-8" />
?将其中的HTTP/1.1协议的端口改为8983,当然也可以是其他不冲突的端口。solr习惯用8983。
?????? 注意,tomcat中有三个需要修改的端口,这是其中一个。还有一个是<server>标签里一个启动端口,和AJP协议的端口,都要改成不冲突的。我之前报过一个错误:BAD packet signature 18245,就是因为http协议和ajp协议端口写重复了。
??????? 好了,下面就可以启动tomcat了。启动没报错,看日志可以发现加载了一大堆的配置文件。
??????? 然后先去观察一下tomcat的webapps目录,发现多了一个solr-example文件夹。这个文件夹便是tomcat启动时自动解压了solr.war而释放出来的一个已经做好的web工程。这也是指定docBase的原因。
现在访问一下http://localhost:8983/solr-example/admin/。如果你出现了以下这个界面,恭喜你部署成功了。
??????? 鉴于我在生成全索引的时候遇到的问题更多,所以建立全索引就留在下一篇写吧。
???????
??????? 小菜鸟要努力学习,欢迎大神批评指正。
?
?
?
?