在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
如果你不配置端口的话您的Solr服务器已经启动运行,但是它没有任何数据。通过Posting命令,您可以修改Solr的索引:添加(或修改)文档,删除文档,并且提交添加或删除。这些命令支持多种格式(variety of formats)。
目录 exampledocs 包含了一些展示多种Solr可以接受的命令的示例文件,以及一个在终端提交这些命令的java工具(还有一个shell脚本post.sh,在本手册中,我们使用跨平台的Java客户端)。
打开一个新的终端窗口,输入exampledocs目录,然后在同目录下的一些XML文件运行“java -jar post.jar”
可能会提示如下错误:
SimplePostTool: FATAL: IOException while posting data: java.net.ConnectException: Connection refused: connect
因为solr默认使用8983端口,这里使用的是8080端口,当然会报错,使用如下命令
java -jar post.jar -h
java -Durl=http://localhost:8080/solr/update -jar post.jar *.xml
第一步:在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关键字,则图片显示如文章开始时附上的第一张酷酷的图片了。好了,任务完成。