solr安装部署,使用,实现实时重建索引和增量更新

版本:solr4.4.0     jdk1.6   tomcat7,端口8066

1:安装solr

 

/opt目录下创建solr文件夹

 

 

tomcatsolr4.4.0上传并解压

 

进入/opt/solr/solr-4.4.0/dist,找到solr.war

 solr安装部署,使用,实现实时重建索引和增量更新_第1张图片

solr.war文件复制到tomcat/opt/solr/apache-tomcat-7.0.8/webapps目录下,

启动tomcat,解压solr.war,关闭tomcat,删除solr.war

 solr安装部署,使用,实现实时重建索引和增量更新_第2张图片

/opt/solr/solr-4.4.0/example/lib/ext下的所有的jar包复制到tomcatsolr

/opt/solr/apache-tomcat-7.0.8/webapps/solr/WEB-INF/lib文件夹下。

 

/opt/solr/solr-4.4.0/example/resources下的log4j.properties同样复制到tomcatsolr

/opt/solr/apache-tomcat-7.0.8/webapps/solr/WEB-INF/lib文件夹下。

 

然后在/solr目录下创建solrHome文件夹

 solr安装部署,使用,实现实时重建索引和增量更新_第3张图片

/opt/solr/solr-4.4.0/example目录下的solr目录

以及/opt/solr/solr-4.4.0下的contribdist目录

复制到solrHome文件夹下。

 solr安装部署,使用,实现实时重建索引和增量更新_第4张图片

 

找到/opt/solr/apache-tomcat-7.0.8/webapps/solr/WEB-INF下的web.xml

找到如下代码:修改标签中的值,指定为自己的solrhome目录。

 

  solr/home     

 /opt/solr/solrHome/solr

  java.lang.String

 

启动tomcat,访问http://192.168.1.24:8066/solr,会出现solr的管理界面

 solr安装部署,使用,实现实时重建索引和增量更新_第5张图片

2:配置solr连接数据库,导入数据

/opt/solr/solr-4.4.0/dist下的solr-dataimporthandler-4.4.0.jar

solr-dataimporthandler-extras-4.4.0.jar

以及mysql数据库驱动包,mysql-connector-java-5.1.6(1).jar

放到tomcatsolr下的/opt/solr/apache-tomcat-7.0.8/webapps/solr/WEB-INF/lib目录下。

 solr安装部署,使用,实现实时重建索引和增量更新_第6张图片

 solr安装部署,使用,实现实时重建索引和增量更新_第7张图片

 

solrHome下的/opt/solr/solrHome/solr/collection1/confsolrConfig.xml中增加一下数据库

配置:

 

 

    

      data-config.xml

     

   

 

并将solrConfig.xml中的contribdist目录地址修改为自己的,${solr.data.dir:} 默认是solrHome下,collection1的目录位置,按照目录向上就可以。

 solr安装部署,使用,实现实时重建索引和增量更新_第8张图片

 

 

 

 

/opt/solr/solrHome/solr/collection1/conf目录下增加data-config.xml文件,添加如下内容:

 

    

   driver="com.mysql.jdbc.Driver"  

   url="jdbc:mysql://192.168.1.24:3308/bootdo"  

   user="root"  

   password="123456"/>  

      

          

            

              

              

            

            

          

      

此处我查的是用户表,将用户表进行了全局索引。

 

/opt/solr/solrHome/solr/collection1/conf下的schema.xml中加入自己查询的字段:

Id是唯一的,本来就有,不用添加。

 solr安装部署,使用,实现实时重建索引和增量更新_第9张图片

 

在这里, 我的用户名的type指定的是text_ik,采用了中文分析器,按照用户名查询的时候会进行分词。

 

此处连接数据库就配置完成。

重启tomcat,访问solr

 solr安装部署,使用,实现实时重建索引和增量更新_第10张图片

collection1下点击dataimport,点击excute进行导入.

 solr安装部署,使用,实现实时重建索引和增量更新_第11张图片

然后在Query页面点击Excute Query就可以查询到我们导入的数据,也可以加条件查询。

 solr安装部署,使用,实现实时重建索引和增量更新_第12张图片

3:配置中文分词器

IKAnalyzer2012_FF.jar IKAnalyzer2012FF_u1.jar复制到

/opt/solr/apache-tomcat-7.0.8/webapps/solr/WEB-INF/lib目录下。

 solr安装部署,使用,实现实时重建索引和增量更新_第13张图片

/opt/solr/solrHome/solr/collection1/conf目录下的schema.xml中添加分词器的

配置:

   

    

      

 

 solr安装部署,使用,实现实时重建索引和增量更新_第14张图片

 

 

添加两个字段进行分词测试:

 

 

 

如图所示,solr管理界面,选择Analysis,输入一段话,选择text_ik分词。

 solr安装部署,使用,实现实时重建索引和增量更新_第15张图片

没有进行分词的效果:

 solr安装部署,使用,实现实时重建索引和增量更新_第16张图片

4定时实时重建索引和增量更新

mysql中的数据导入到了solr中之后,如果数据库中的数据有变动,solr中还是第一次导入的旧的数据,这时候就需要实现实时重建索引和增量更新。

准备工作要做好:

    1、下载jar包:solr-dataimportscheduler-1.1.jar http://pan.baidu.com/s/1hsySs2S

     2、新建文件:dataimport.properties,文件复制下面的就好,具体配置含义已给出注释:

#################################################

#                                               #

#       dataimport scheduler properties         #

#                                               #

#################################################

 

#  to sync or not to sync

#  1 - active; anything else - inactive

# 这里的配置不用修改

syncEnabled=1

 

#  which cores to schedule

#  in a multi-core environment you can decide which cores you want syncronized

#  leave empty or comment it out if using single-core deployment

#  修改成你所使用的core,我这里是我自定义的core:simple

syncCores=simple

 

#  solr server name or IP address

#  [defaults to localhost if empty]

这个一般都是localhost不会变

server=localhost

 

#  solr server port

#  [defaults to 80 if empty]

#  安装solr的tomcat端口,如果你使用的是默认的端口,就不用改了,否则改成自己的端口就好了

port=8066

 

#  application name/context

#  [defaults to current ServletContextListener's context (app) name]

#  这里默认不改

webapp=solr

 

#  URL params [mandatory]

#  remainder of URL

#  这里改成下面的形式,solr同步数据时请求的链接

params=/dataimport?command=delta-import&clean=false&commit=true

 

#  schedule interval

#  number of minutes between two runs

#  [defaults to 30 if empty]

#这里是设置定时任务的,单位是分钟,也就是多长时间你检测一次数据同步,根据项目需求修改

#  开始测试的时候为了方便看到效果,时间可以设置短一点

interval=1

 

#  重做索引的时间间隔,单位分钟,默认7200,即5天; 

#  为空,为0,或者注释掉:表示永不重做索引

reBuildIndexInterval=7200

 

#  重做索引的参数

reBuildIndexParams=/select?qt=/dataimport&command=full-import&clean=true&commit=true

 

#  重做索引时间间隔的计时开始时间,第一次真正执行的时间=reBuildIndexBeginTime+reBuildIndexInterval*60*1000;

#  两种格式:2012-04-11 03:10:00 或者  03:10:00,后一种会自动补全日期部分为服务启动时的日期

reBuildIndexBeginTime=03:10:00

 

准备好这一个jar包和dataimport.properties文件,开始下面的步骤……

步骤一:solr-dataimportscheduler-1.1.jar包复制到/opt/solr/apache-tomcat-7.0.8/webapps/solr/WEB-INF/lib中。

步骤二:/opt/solr/apache-tomcat-7.0.8/webapps/solr/WEB-INF/目录下的web.xml文件中添加监听配置:

   

 

    org.apache.solr.handler.dataimport.scheduler.ApplicationListener

 

   

   复制上面这段时注意org.apache.solr.handler.dataimport.scheduler.ApplicationListener后面不要有空格,不然启动tomcat会有奇怪的错误.

步骤三:\solrhome目录下新建一个conf文件夹(与simple文件夹同目录),将dataimport.properties文件放在conf文件夹中。

 solr安装部署,使用,实现实时重建索引和增量更新_第17张图片

步骤四:重启tomcat,访问solr管理界面:

我们查询一条数据:username:”linlinlin”,注意此时,查询到的name”linlinlin123”,

和我们数据库中是一致的。

 solr安装部署,使用,实现实时重建索引和增量更新_第18张图片

 

 

 

 

然后我们在数据中修改name123,然后等待一分钟,查看solr查询界面是否改变。

 solr安装部署,使用,实现实时重建索引和增量更新_第19张图片

可以看到查询结果已经发生改变。


你可能感兴趣的:(solr)