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包)。
1.2.2 solr 功能
- 保存数据
- 建立索引,维护索引
- 数据检索(全文搜索,高亮显示,精确搜索等)
1.2.3 solr 依赖环境
Ø Jdk 1.7+
Ø TOMCAT 7+
Ø solr 4.9.1 (选用较为稳定的版本)
1.2 solr 服务器搭建
1.2.1 初始配置 solr 截止到文档编写前,solr目前的最新版本为7.3.0,我选用的solr是目前比较成
熟稳定的版本solr 4.9.1。
1. 官网下载solr4.9.1的程序安装包。
下载地址:点击下载点击打开链接
如下图所示,下载我们所需要的zip包
2.解压solr的zip包,目录如下
3.将dist文件夹下的solr-4.9.1.war文件复制到tomcat的webapps目录下,并将文件命名为solr.war
4.复制 solr解压包下example\lib\ext 下所有的jar 到tomcat 的lib目录下
5. 在计算机本地(在D盘F盘任意盘符下面都可以)新建一个文件夹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-8.0.50\webapps\solr\WEB-INF\web.xml
solr/home
F:/solr_home
java.lang.String
8.访问solr(http://localhost:端口号/solr/),如出现以下界面则solr部署成功。(端口号是写tomcat的端口号)
1.2.2 新建数据配置 core
1.新建core(solr中把配置的每一个模块都叫core),在solr_home目录下,拷贝collection1文件夹,并起名为test。打开test文件夹,修改core.properties文件,将name修改为test
1.重新启动tomcat,并访问solr,如出现以下界面,则表示新建test core成功。
1.2.3 新增数据库配置
到目前为止,我们已经完成了solr的基础配置,并且创建了test core,接下来我们需要把数据库的数据和搜索引擎连接起来,让搜索引擎可以读取数据库的数据。
1. 拷贝数据库连接jar包(mysql-connector-java-5.1.18.jar)到tomcat的webapps的solr的WEB-INF的lib目录 下
2. 以创建test core的方式新建hotel core
3. 打开hotel的conf文件夹中的solrconfig.xml文件,在requestHandler name="/select" class="solr.SearchHandler">前面上加上一个处理dataimport的Handler
4. 在hotel的conf文件夹下并新建data-config.xml文件,配置如下:
表示从数据库中查询数据放到solr容器中
Ø dataSource是数据库数据源。
Ø Entity就是一张表对应的实体,pk是主键,query是查询语句。
Ø Field对应一个字段,column是数据库里的column名,后面的name属性对应着Solr的Filed 的名字。
5. 打开hotel的conf目录下的schema.xml文件,修改这个文件(schema.xml 是solr对数据库里的数据进行索引管理和数据字段展示管理的配置文件)
(1)先把我们要保留的的东西找出来,把要保留的东西的放到最上面,删掉一些不必要的注释,这样看起来清爽一点,
下图的三个东西是我们需要保留的,除这三个之外,还要保留fieldType标签后面所有的东西,其它的就全部删掉。
(2) 添加索引字段:这里每个field的name属性值要和我们上面配置data-config.xml里的entity的field的name一样,一 一 对应。
6. 将导入数据的JAR包拷贝到webapps/solr的lib目录下