CentOs7下Solr5.5.1连接Mysql进行全文检索服务器搭建

1,下载solr软件包:Solr5.5.1,由于6.0需要jdk8支持,我用的是jdk7,所以选择低版本

下载地址:http://www.apache.org/dyn/closer.lua/lucene/solr/5.5.1

 

2,解压并将文件夹拷贝到/usr/local下,注所有操作都在solr的根目录下执行

[root@Server251 solr-5.5.1]# ll
drwxr-xr-x.  3 root root   4096 5月  26 09:12 bin
-rw-r--r--.  1 root root 555321 5月   1 00:25 CHANGES.txt
drwxr-xr-x. 13 root root   4096 5月   1 04:29 contrib
drwxr-xr-x.  4 root root   4096 5月  25 17:47 dist
drwxr-xr-x. 19 root root   4096 5月  25 17:47 docs
drwxr-xr-x.  7 root root     99 5月  25 17:47 example
drwxr-xr-x.  2 root root  28672 5月  25 17:47 licenses
-rw-r--r--.  1 root root  12646 2月   1 06:58 LICENSE.txt
-rw-r--r--.  1 root root 590277 5月   1 00:25 LUCENE_CHANGES.txt
-rw-r--r--.  1 root root  26529 2月   1 06:58 NOTICE.txt
-rw-r--r--.  1 root root   7162 5月   1 00:25 README.txt
drwxr-xr-x. 11 root root   4096 5月  25 17:47 server

 

3,将数据库连接所用的jar包放入server/lib/ext/下

[root@Server251 solr-5.5.1]# ll server/lib/ext/
-rw-r--r--. 1 root root  16519 4月   4 2014 jcl-over-slf4j-1.7.7.jar
-rw-r--r--. 1 root root   4730 4月   4 2014 jul-to-slf4j-1.7.7.jar
-rw-r--r--. 1 root root 489884 5月  26 2012 log4j-1.2.17.jar
-rw-r--r--. 1 root root 959984 9月  23 2015 mysql-connector-java-5.1.33.jar
-rw-r--r--. 1 root root  29257 4月   4 2014 slf4j-api-1.7.7.jar
-rw-r--r--. 1 root root   8870 4月   4 2014 slf4j-log4j12-1.7.7.jar

 

4,创建文档对象,创建之前需要先启动服务

[root@Server251 solr-5.5.1]# ./bin/solr start
NOTE: Please install lsof as this script needs it to determine if Solr is listening on port 8983.

Started Solr server on port 8983 (pid=16509). Happy searching!

[root@Server251 solr-5.5.1]# ./bin/solr create -c bookinfo

Copying configuration to new core instance directory:
/usr/local/solr-5.5.1/server/solr/bookinfo

Creating new core 'bookinfo' using command:
http://localhost:8983/solr/admin/cores?action=CREATE&name=bookinfo&instanceDir=bookinfo

{
  "responseHeader":{
    "status":0,
    "QTime":1111},
  "core":"bookinfo"}

 

5,创建成功后,对象数据默认存储于server/solr下

[root@Server251 solr-5.5.1]# ll server/solr
总用量 12
drwxr-xr-x. 4 root root   50 5月  26 09:22 bookinfo
drwxr-xr-x. 5 root root   93 2月   1 06:58 configsets
-rw-r--r--. 1 root root 3037 2月   1 06:58 README.txt
-rw-r--r--. 1 root root 1887 2月   1 06:58 solr.xml
-rw-r--r--. 1 root root  501 2月   1 06:58 zoo.cfg

 

 6,添加数据导入DIH功能启用以及所需的jar包支持

[root@Server251 solr-5.5.1]# vim server/solr/bookinfo/conf/solrconfig.xml

 找到<requestHandler标签添加如下代码片段来启用DIH功能,此次设置了一个配置文件data-config.xml

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
        <str name="config">data-config.xml</str>
    </lst>
</requestHandler>
 找到<lib标签添加如下jar包引用 
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" />
 

7,添加配置数据文件data-config.xml,并设置以下内容,此处以t_book_baseinfo_solr表为例 

[root@Server251 solr-5.5.1]# cat server/solr/bookinfo/conf/data-config.xml
<dataConfig>
   <dataSource type="JdbcDataSource" 
              driver="com.mysql.jdbc.Driver"
              url="jdbc:mysql://数据库地址:3306/数据库名称" 
              user="root" 
              password="888888"/>
   <document>
    <entity name="bookinfo" query="select BOOK_ID,BOOK_NAME,BOOK_SHORT_NAME from t_book_baseinfo_solr">
        <field column="BOOK_ID" name="bookId" />
        <field column="BOOK_NAME" name="bookName" />
        <field column="BOOK_SHORT_NAME" name="bookShortName" />
    </entity>   	
  </document>
</dataConfig>

 

 8,配置数据源字段映射 
[root@Server251 solr-5.5.1]# vim server/solr/bookinfo/conf/managed-schema
 找到<field字段添加如下信息, bookId、bookName、 bookShortName即上一步中的配置信息字段 
<field name="bookId" type="string" indexed="true" stored="true" required="true" multiValued="false"/>
<field name="bookName" type="text_general" indexed="true" stored="true" />
<field name="bookShortName" type="text_general" indexed="true" stored="true" />
 将原有的配置字段删除或者注释掉
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
 配置表的主键
<uniqueKey>id</uniqueKey>
修改为
<uniqueKey>bookId</uniqueKey>
  9,重启应用配置信息
[root@Server251 solr-5.5.1]# ./bin/solr restart
Sending stop command to Solr running on port 8983 ... waiting 5 seconds to allow Jetty process 16083 to stop gracefully.
NOTE: Please install lsof as this script needs it to determine if Solr is listening on port 8983.

Started Solr server on port 8983 (pid=16281). Happy searching!
 

 10,停止应用

[root@Server251 solr-5.5.1]# ./bin/solr stop -all
Sending stop command to Solr running on port 8983 ... waiting 5 seconds to allow Jetty process 16281 to stop gracefully.

 

11,删除文档

[root@Server251 solr-5.5.1]# ./bin/solr delete -c bookinfo

Deleting core 'bookinfo' using command:
http://localhost:8983/solr/admin/cores?action=UNLOAD&core=bookinfo&deleteIndex=true&deleteDataDir=true&deleteInstanceDir=true

{"responseHeader":{
    "status":0,
    "QTime":24}}

 

12,导入数据,并查看结果,数据库中有17条数据,所以显示17个documents

此处使用的是全量导入,更多的增量导入相关功能后续再开新帖

 

13,执行全文检索,查看所有记录数



 

猜你喜欢

转载自fanyc.iteye.com/blog/2300983