临近毕业,乱七八糟的事儿纠结在一下,好久都没有写博客了。继续solr的学习吧。前段时间学习solr都是浮于表面,一直没能深入solr开发的核心。在企业开发中,由于个性化的需求,一般都是基于solr的二次开发,这样的话肯定不会用solr的jar包,而是用solr的源代码。
这次就用eclipse(JAVAEE Indigo)+Tomcat6.0+solr3.5来实践一次吧。
好在网上有许多的博客,对此进行了叙述,做起来也没有那么难。这里就把自己部署的过程记录一下,方便自己以后查阅。
进行下面的工作之前,有如下假设:
一、jdk已经安装好,并且环境变量已经配置好。
二、tomcat6已经安装好,并且能跑起。
三、eclipse javaee也安装好,并且与tomcat6已经集成好了。
第一步:下载solr的源代码。下载地址
http://archive.apache.org/dist/lucene/solr/3.5.0/apache-solr-3.5.0-src.tgz
第二步:解压源代码,我解压的目录是
D:\source_code\apache-solr-3.5.0-src\apache-solr-3.5.0,解压后项目结构的截图如下:
第三步:安装ant与ivy。
下载apache-ant-1.9.1,下载地址
http://mirror.bjtu.edu.cn/apache//ant/binaries/apache-ant-1.9.1-bin.zip
下载apache-ivy-2.3.0,下载地址
http://apache.etoak.com//ant/ivy/2.3.0/apache-ivy-2.3.0-bin.zip
下载完后把ant解压到D:\apache-ant-1.9.1,然后配置ant的环境变量:
ANT_HOME=D:\apache-ant-1.9.1
Path=%ANT_HOME%\bin
然后把ivy的jar包ivy-2.3.0.jar复制到%ANT_HOME%\lib目录下,注意是lib目录!
在D:\source_code\apache-solr-3.5.0-src\apache-solr-3.5.0,即solr的解压目录下打开cmd,
(shift+鼠标右键->”在此处打开命令行窗口”),然后运行命令:ant eclipse
这样的话,solr的源代码就变成了eclipse的一个项目了。
第四步:打开eclipse(我的eclipse版本是:Eclipse Java EE IDE for WebDevelopers. Indigo)把solr的源代码import到eclipse中。截图如下:
实际上刚import后的project是一个普通的eclipse项目,而不是web project。那么怎么做呢?参考http://hi.baidu.com/zwjhjmx/item/06d6bd3c9ddba487b611db73(Eclipse 中将Java Project 转换为Dynamic WebProject)
1. 修改项目的.project文件,保存,不记得是否需要重启Eclipse了。
在<natures>
…
</natures>
之间添加下列三行配置
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
2. 在Eclipse中打开“projectproperties",会看到新增了很多选择项,点中"ProjectFacets",按下图配置:
3. 勾选合适的选项,则项目即可成为一个Dynamic Web Project。
这里需要注意的是org.eclipse.wst.common.project.facet.core.xml文件里的
<?xmlversion="1.0"encoding="UTF-8"?>
<faceted-project>
<fixedfacet="wst.jsdt.web"/>
<installedfacet="java"version="1.6"/>
<installed facet="jst.web"version="2.5"/>
<installedfacet="wst.jsdt.web"version="1.0"/>
</faceted-project>
而不能是3.0(注意红色的文字)
第五步:在D:\source_code\apache-solr-3.5.0-src\apache-solr-3.5.0目录下新建WebContent目录,然后把D:\source_code\apache-solr-3.5.0-src\apache-solr-3.5.0\solr\webapp下的所有文件和文件夹copy到WebContent中。
把D:\source_code\apache-solr-3.5.0-src\apache-solr-3.5.0\solr\example目录下的solr文件夹copy到D:\source_code\apache-solr-3.5.0-src目录下。
第六步:引入必须的jar包。
把项目依赖的 jar 包 copy 出来, copy 到 WebContent\WEB-INF\lib 目录下,如果没有 lib 目录,则自己创建。依赖的 jar 包还是挺多的,我这里一个有 72 个。第七步:配置solr/home
找到项目的WebContent/WEB-INF/web.xml,打开,会看到这样的代码:
<!--
<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:/source_code/apache-solr-3.5.0-src/solr</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
第八步:运行Tomcat,看看效果吧!
如果输入localhost:8080/solr/browse,则发现没有样式。怎么做呢?
找到项目的.settings目录,然后修改org.eclipse.wst.common.component,把最下面的
<property name="context-root"value="lucene_solr"/>修改为
<propertyname="context-root" value=" solr"/>,然后再重新启动tomcat,OK,一切正常了吧!