一、Solr简介
1、Solr是什么
Solr是一个基于Lucene的Java搜索引擎服务器。Solr 提供了层面搜索、命中醒目显示并且支持多种输出格式(包括 XML/XSLT 和 JSON 格式)。它易于安装和配置,而且附带了一个基于 HTTP 的管理界面。Solr已经在众多大型的网站中使用,较为成熟和稳定。Solr 包装并扩展了 Lucene,所以Solr的基本上沿用了Lucene的相关术语。更重要的是,Solr 创建的索引与Lucene 搜索引擎库完全兼容。通过对 Solr 进行适当的配置,某些情况下可能需要进行编码,Solr 可以阅读和使用构建到其他 Lucene 应用程序中的索引。此外,很多 Lucene 工具(如 Nutch、 Luke)也可以使用Solr 创建的索引。 总结一下:solr是一个java搜索引擎服务器(是一套war程序),内部集成了Lucene(apache提供的一些对搜索引擎做支持的jar包)。
2、Solr能做什么
保存数据
建立索引,维护索引
数据检索(全文搜索,高亮显示,精确搜索等)
3、为什么需要Solr
问题:我们已经学过Lucene,为什么还要学习solr?
答:Lucene是一个工具包,不能单独运行,需要导入到java代码中。
Solr可以独立运行在tomcat容器中,通过http协议,以接口的方式对外提供服务,java代码只需要专注于业务的处理就可以。
二、solr 服务器搭建
1. 官网下载solr4.9.1的程序安装包。
下载地址:http://archive.apache.org/dist/lucene/solr/
2. 解压solr的zip包,目录如下
3. 将dist\solr-4.9.1.war文件复制到tomcat的webapps目录下,并将文件命名为solr.war
4. 复制solr解压包下example\lib\ext 下所有的jar 到tomcat 的lib目录下
5. 在计算机本地新建一个文件夹solr_home(当然你可以随便起名字), 然后复制
solr-4.9.1\example\solr 下的所有文件到 solr_home下
6. 启动tomcat,待tomcat启动成功后,关闭tomcat。打开tomcat的webapps目录。注意,此时solr的war包以及被解压成solr文件夹。删除tomcat 的webapps目录下的solr的war
包,保留solr文件夹。
7. 修改配置文件apache-tomcat-7.0.67\webapps\solr\WEB-INF\web.xml
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value> F:/solr_home</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
8. 访问solr(http://localhost:端口号/solr/),如出现以下界面则solr部署成功。
三、新建数据配置 core
1. 新建core(solr中把配置的每一个模块都叫core),在solr_home目录下,拷贝collection1文件夹,并起名为test。打开test文件夹,修改core.properties文件,将name修改为test
2. 重新启动tomcat,并访问solr,如出现以下界面,则表示新建testcore成功。
3. 重新启动tomcat,并访问solr,如出现以下界面,则表示新建testcore成功。
四、新增数据库配置
到目前为止,我们已经完成了solr的基础配置,并且创建了test core,接下来我们需要把数据的数据和搜索引擎连接起来,让搜索引擎可以读取数据库的数据。
1. 拷贝数据库连接jar包(mysql-connector-java-5.1.18.jar)到tomcat的lib目录
2. 以创建testcore的方式新建hotel core
3. 打开hotel的conf文件夹中的solrconfig.xml文件,在requestHandlername="/select" class="solr.SearchHandler">前面上加上一个dataimport的处理的Handler
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
五、