码迷,mamicode.com
首页 > 数据库 > 详细

SOLR环境搭建以及全量导入MYSQL数据

时间:2015-10-18 19:59:07      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

SOLR文档

前言

因为项目中要用到solr,因此花了一周多的时间研究了一下solr,其中的各种问题我就不说了,特别是这两天在研究定时增量索引的时候,心里不知道多少个XXX在奔腾,好了,废话不多说,下面把我得研究成果跟大家分享一下,另外对于SOLR是什么,大家还是自行度娘吧,让我说我也说不清楚。

 

版本

SOLR

SOLR最新的版本是5.3,但是我没有用最新的版本,用的是4.10.4.

 

JDK

JDK的版本是jdk1.7.0_13,这里要说一下的就是4.10版本的SOLR需要1.7以上的JDK,刚开始的时候我使用的是1.6版本的JDK,但是部署之后一直在报错,百度之后换成1.7版本的JDK就没问题了。

 

TOMCAT

Tomcat的版本是apache-tomcat-7.0.63,这个无所谓,使用tomcat 6也是可以的。

 

 

部署

1.下载solr

http://apache.dataguru.cn/lucene/solr/4.10.4/下载4.10.4版本的solr到本机,随便放到一个位置即可。

2.解压

将下载好的solr4.10.4压缩包解压到本地一个文件夹,位置随意,解压后的文件夹如下所示:

 技术分享

3.部署

(1)复制example\webapps文件夹下面的solr.war文件到tomcat的webapps目录下,启动tomcat解压solr.war,此时tomcat可能会报错,但是不用管,只要把solr.war解压出来即可(当然也可以手动解压),停掉tomcat,删除solr.war,不然以后每次启动都会重新解压。

(2)回到tomcat的webapps目录下,记事本打开solr\WEB-INF\web.xml文件。加入如下所示的代码:

 技术分享

(3)如上面代码所示,需要创建一个SOLR_HOME文件夹,放在哪个盘符可以自己确定,我的是放在F盘下。

(4)创建SOLR_HOME文件夹完成之后,回到解压好的solr 4.10.4文件夹,复制example\solr文件夹下面的全部内容到SOLR_HOME文件夹中,复制完成后的SOLR_HOME文件夹如下所示:

 技术分享

 

其中的distcontrib文件夹为非必须得,可以不用考虑。

 

(5)复制example\lib\ex文件夹下的所有jar文件到webapps\solr\WEB-INF\lib下。

(6)此时运行http://localhost:8080/solr,将看到如下所示的页面:

 技术分享

 

 

此时SOLR的环境搭建就完成了(此时只有一个coresolr是支持multicore的,暂时先不说,后面再说),下面开始进行数据的导入:

(1)打开F:\SOLR_HOME\collection1\conf,在此文件夹下面可以看到solrconfig.xml文件,打开该文件,在<config></config>中间添加如下所示的代码:

 技术分享

 

(2)此处引入了data-config.xml文件,因此需要在solrconfig.xml的同目录下创建data-config.xml文件,文件内容如下:

 技术分享

 

注意:

a.dataSource标签标示要创建索引的表所在的数据库,配置信息大家自己看一下就明白需要什么东西了,我就不多说了。

b.document标签中的entity关键说一下,document中可以有多个entity标签,一个entity对应一个表,如果是关联表,那么需要在entity标签中嵌套entity标签,这个以后再说,目前就以单张表来说。

name:表示当前的entity名称,区分多个entity

pk:当前实体所对应的表的主键;

query:用于全量索引;

后面两个为增量索引时需要,暂时不说,后面说道增量索引时再说,如果仅仅是全量索引,那么后面两个完全没有必要了;

 

c.field:对应数据库中的字段名称,column对应数据库字段名称,name属性可以自己设置,但是要和schema.xml文件中的field对应;

 

tuser表结构:

 技术分享

(3)schema.xml配置

a.schema.xml文件和data-config.xml在同一目录下,打开该文件,配置如下:

 技术分享

注意field字段的配置,name属性要和data-config.xmlfield中的name属性对应,indexedtrue表示对该字段创建索引,storedtrue表示在索引文件中存储该字段的内容,方便查询时返回,对于内容特别多的字段,或者只需要查询,但是不需要返回内容的字段,可以设置storedfalse;

b.设置索引ID

设置schema.xml文件中的uniqueKey为表中的主键,如下所示:

 技术分享

 

(4)elevate.xml

elevate.xml文件也在solrconfig.xml的同一目录下,打开该文件,设置如下:

 技术分享

之所以要这么设置是因为我们表中的idint类型的,在schema.xml设置了id也是int类型的,但是solr的索引需要string类型的,如果不把上面的两个<doc>注释掉,那么会报错。

 

5)导入jar

做全量导入的配置文件就是上面这三个了,但是从数据库导入数据还需要三个jar包,一个是mysql链接数据库的jar包(mysql-connector-java-5.1.21.jar),另外两个是solr做数据导入的时候需要的,位于解压的solr 4.10.4文件夹下面的dist文件下面的solr-dataimporthandler-4.10.4.jarsolr-dataimporthandler-extras-4.10.4.jar,将这三个文件放入到tomcat\webapps\solr\WEB-INF\lib下即可。

 

(6)启动tomcat,访问localhost:8080/solr路径,点击如下位置:

 技术分享

出现如下菜单,点击Dataimport菜单,显示如下页面:

 技术分享

点击Execute按钮,点击下面的刷新按钮,等右侧变成如下所示时数据导入完成:

 技术分享

此时点击Query菜单,进入页面后点击Execute Query按钮,即可查询导入的数据创建的索引:

 技术分享

numFound就是数据库中数据的记录数,我数据库中的数据如下:

 技术分享

可以看到我数据库中也是只有12条数据,至此全量索引已经导入完成。

 

今天暂时就写到这里,下次会继续写增量导入以及定时增量导入。我把我做的一个demo在百度云上分享了,需要的可以去下载一下,把SOLR_HOME放在F盘即可,如果不想放在F盘的,可以自己改一下solr文件夹下面的WEB-INF中的web.xml中的配置即可。

百度网盘地址是:http://pan.baidu.com/s/1sj9VlOp,文件夹中的内容如下:

 技术分享

Solr文件夹直接放在tomcat下的webapp中即可,SOLR_HOME,如果不想改配置的话可以放在F盘根目录下,如果放在别的盘的话,需要技术分享修改solrweb.xml中的配置,

 

Sql文件就不用说了吧,大家都懂的,jar文件暂时用不到,做定时增量索引时用到,可以不用管。

 

SOLR环境搭建以及全量导入MYSQL数据

标签:

原文地址:http://www.cnblogs.com/liaidai/p/4890039.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!