在solr的参考书《Apache Solr 3 Enterprise Search Server》的24页讲到the sample browse Interface,而且还给了张很酷的图。
这个功能在solr中是实现了的。但是按照书上说的网址http://localhost:8983/solr/browse访问则报错,lazy loading error。
我参照网上的博客,自己配置了一下,也是纠结了好几天才弄好。把详细过程记录下来。
首先说明,我用的相关工具为:win7(32位旗舰版) + Tomcat6.0 + solr4.2.0。
Tomcat6.0的安装目录为:D:\Tomcat6.0(请注意没有空格),配置的端口为:8983
第一步:在D盘的根目录下建立文件夹xh_solr ,在xh_solr目录下建立两个目录:apache-solr-4.2、tomcat-solr。然后把solr-4.2.0.zip解压缩文件中solr-4.2.0\dist目录中的solr-4.2.0.war文件复制到D:\xh_solr\apache-solr-4.2目录下,把solr-4.2.0.zip解压缩文件中solr-4.2.0\example目录下的solr文件夹复制到D:\xh_solr\tomcat-solr目录下。
第二步:修改tomcat的配置。
在D:\Tomcat6.0\conf目录下建立:Catalina\localhost\solr.xml目录及文件。Solr.xml文件的内容如下:
- <?xml version="1.0" encoding="utf-8"?>
- <Context docBase="D:\xh_solr\apache-solr-4.2\solr-4.2.0.war" debug="0" crossContext="true" >
- <Environment name="solr/home" type="java.lang.String"
- value="D:\xh_solr\tomcat-solr\solr" override="true" />
- </Context>
第三步:启动Tomcat。如果配置正常,Tomcat启动后,在D:\Tomcat6.0\webapps目录下会自动生成solr文件夹。其实就是把D:\xh_solr\apache-solr-4.2\solr-4.2.0.war解压到了D:\Tomcat6.0\webapps目录。打开浏览器,输入:localhost:8983/solr则会进入我们熟悉的solr主页了。
第四步:在D:\xh_solr目录下建立webapps目录,并把D:\Tomcat6.0\webapps目录下的solr文件夹剪切到D:\xh_solr\webapps目录下。(剪切前需要stop tomcat)。然后删除D:\Tomcat6.0\conf目录下的Catalina目录。
第五步:配置D:\Tomcat6.0\conf目录下的server.xml。在<Host>节点下加入:
- <Host>
- ……
- <Context path="" docBase="D:\xh_solr\webapps\solr" debug="0"/>
- </Host>
然后配置D:\xh_solr\webapps\solr\WEB-INF目录的web.xml文件,配置solr/home的路径:去掉web.xml的第40行到第46行的注释。如下:
- <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-entry-name>solr/home</env-entry-name>
- <env-entry-value>D:\xh_solr\tomcat-solr\solr</env-entry-value>
- <env-entry-type>java.lang.String</env-entry-type>
- </env-entry>
然后启动Tomcat,如果配置成功,则不在浏览器中输入http://127.0.0.1:8983/就可以访问到solr的主页面了(注意不再是localhost了)。
此时,我们访问:http://127.0.0.1:8983/browse 会报如下的错误:
错误页面还是很壮观的。这是为什么呢?其原因在于相关jar包路径有错误。解决方法也不难。
第六步:把solr-4.2.0.zip解压缩目录下的solr-4.2.0/dist目录和solr-4.2.0/contrib目录复制到D:\xh_solr\tomcat-solr\solr\bin目录下。然后配置:D:\xh_solr\tomcat-solr\solr\collection1\
conf\solrconfig.xml文件:把solrconfig.xml文件下的72行82行的内容修改如下:
- <lib dir="D:/xh_solr/tomcat-solr/solr/bin/contrib/extraction/lib" regex=".*\.jar" />
- <lib dir="D:/xh_solr/tomcat-solr/solr/bin/dist/" regex="solr-cell-\d.*\.jar" />
- <lib dir="D:/xh_solr/tomcat-solr/solr/bin/contrib/clustering/lib/" regex=".*\.jar" />
- <lib dir="D:/xh_solr/tomcat-solr/solr/bin/dist/" regex="solr-clustering-\d.*\.jar" />
- <lib dir="D:/xh_solr/tomcat-solr/solr/bin/contrib/langid/lib/" regex=".*\.jar" />
- <lib dir="D:/xh_solr/tomcat-solr/solr/bin/dist/" regex="solr-langid-\d.*\.jar" />
- <lib dir="D:/xh_solr/tomcat-solr/solr/bin/contrib/velocity/lib" regex=".*\.jar" />
- <lib dir="D:/xh_solr/tomcat-solr/solr/bin/dist/" regex="solr-velocity-\d.*\.jar" />
- <lib dir="D:/xh_solr/tomcat-solr/solr/bin/dist/" regex="apache-solr-dataimporthandler-\d.*\.jar" />
- <lib dir="D:/xh_solr/tomcat-solr/solr/bin/contrib/dataimporthandler/lib/" regex=".*\.jar" />
这时,我们再在浏览器中输入http://127.0.0.1:8983/browse,会发现没有报错了。但是显示的内容没有样式了。把D:\Tomcat6.0\conf\servler.xml修改如下:
- <Host>
- ……
- <Context path="/solr" docBase="D:\xh_solr\webapps\solr" debug="0"/>
- </Host>
然后输入:http://127.0.0.1:8983/solr/browse,则显示正常了。
但是还是跟书本上说的不一样:没有数据。这就需要我们导入数据。将目录转到solr-4.2.0的解压目录solr-4.2.0\example\exampledocs下,在我的电脑上此目录为:E:\OpenSourceForJava\solr-4.2.0\example\exampledocs。然后按住shift键,鼠标点右键:选择“在此处打开命令窗口”选择项。
然后在打开的命令窗口输入命令:java -jar post.jar *.xml。命令正确执行如下图:
然后在刷新浏览器的页面:显示如下图:
我们可以在里面输入ipod关键字,则图片显示如文章开始时附上的第一张酷酷的图片了。好了,任务完成。
致谢:在Tomcat下部署Solr Example(http://chenzehe.iteye.com/blog/1503280)。如果没有这篇博客,我至少不会很容易地配置出the solr browse interface.