Solr已经发布3.5版本了,同时它是基于Lucene 3.5的。我们在基于Solr进行二次开发之前,首先要搭建起一个搜索服务器,在熟悉Solr的基本功能的基础上,可以根据实际应用的需要进行个性化定制开发。因为Solr提供了一种插件机制,我们可以根据自己的需要进行定制,然后在Solr的配置文件中(solrconfig.xml)进行配置即可达到预期的要求。在Solr的发行包中给出了一个配置的例子,我们可以直接将其发布到Web容器中,通过浏览器访问来进行测试,具体如何配置,下面根据从易到难的方式,对每种方式进行详细的介绍。
准备工作
- 下载Solr 3.5发行包(http://lucene.apache.org/solr,apache-solr-3.5.0-src.tgz和apache-solr-3.5.0.tgz),并解压缩到文件系统中;
- 下载Lucene 3.5发行包(http://lucene.apache.org/,lucene-3.5.0-src.tgz和lucene-3.5.0.tgz),并解压缩到文件系统中;
- 安装配置Web容器,我使用的apache-tomcat-6.0.32。
第一种方式:基于WAR包搭建
这种方式,我们是直接使用Solr发行包给定的WAR包,一般来说通过它快速了解Solr是很有用的,而对于满足实际需要的开发还远远不够。
按照下面的步骤,进行安装、配置、验证:
第1步:将apache-solr-3.5.0\apache-solr-3.5.0\example下面的multicore拷贝到apache-tomcat-6.0.32\conf下面;
multicore目录下面包含了Solr的基本配置。Solr支持配置多个实例,亦即,可以启动多个实例来服务于前端不同的搜索请求,每个实例对应一个core,而这样多个core的配置是通过multicore\solr.xml进行配置的,然后在multicore下面的每个目录中对应着每个core的详细配置,具体包括schema.xml(配置与Lucene的Field、Analyzer等相关的内容)、solrconfig.xml(这个是Solr实例核心的配置)。
另外,如果在solrconfig.xml中没有指定<dataDir>索引目录配置,则默认会生成apache-tomcat-6.0.32\conf\multicore\data\index目录,该目录下面存储索引文件。
第2步:将apache-solr-3.5.0\apache-solr-3.5.0\dist下面的apache-solr-3.5.0.war拷贝到apache-tomcat-6.0.32\webapps目录下面;
这个不用过多解释,就是通过使用一个Web归档文件(WAR)来部署一个Web应用,我们的应用就是Solr搜索应用程序。
第3步:配置WAR程序的Context:在apache-tomcat-6.0.32\conf\Catalina\localhost下面(如果目录不存在,则手动创建),创建文件apache-solr-3.5.0.xml;
Context配置文件apache-solr-3.5.0.xml的内容如下所示:
- <Context docBase="${catalina.home}/webapps/apache-solr-3.5.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”指向了目录apache-tomcat-6.0.32\conf\multicore。
第4步:设置Solr的字符集;
默认Solr使用了UTF-8字符集编码,如果你的Tomcat不是的话,在执行中文搜索的时候可能会出现乱码。如果你的Tomcat默认8080端口请求字符集就是UTF-8,并且想使用这个默认的端口提供搜索服务,则可以修改apache-tomcat-6.0.32\conf\server.xml文件的内容,如下所示:
- <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" />
如果想使用一个新的未被占用的端口,则可以在apache-tomcat-6.0.32\conf\server.xml中增加一个配置,例如使用8888端口,配置内容如下所示:
- <Connector port="8888" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" />
通过上面的步骤,现在可以启动Tomcat服务器,在浏览器地址栏这种输入http://localhost:8080/apache-solr-3.5.0/,你会看到如下内容:
- Welcome to Solr!
- <a href="http://localhost:8080/apache-solr-3.5.0/core0/admin/" target="_blank">Admin core0</a>
- <a href="http://localhost:8080/apache-solr-3.5.0/core1/admin/" target="_blank">Admin core1</a>
则说明已经安装成功了。你可以根据链接,点击进去,浏览一下Solr提供的管理界面及其相关的管理功能。
Solr 的详细介绍:请点这里
Solr 的下载地址:请点这里