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,执行全文检索,查看所有记录数