Solr入门(四)Solr数据同步

前言

      本章讲解Solr数据同步的相关知识

方法

1.概念

之前我们从Solr中新建的索引数据都是我们自主进行创建的,实际工作中我们需要从数据库中进行数据的同步操作。为了保证数据的一致性,我们还需要定时的进行同步操作。

2.配置数据导入

1)导入数据同步相关jar和数据库驱动jar

将jar包放入指定路径下:XX\solr-7.6.0\server\solr-webapp\webapp\WEB-INF\lib

2)新建data-config.xml配置文件并编辑内容

data-config.xml内容编写如下:

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>  
  <dataSource name="source1"  type="JdbcDataSource"   
              driver="oracle.jdbc.driver.OracleDriver"  
              url="jdbc:oracle:thin:@//localhost:1521/orcl"   
              user="scott"   
              password="tiger"/>  
  <document>  
    <entity name="user" dataSource="source1"  PK="id"  
            query="SELECT id,username,password from users">               
            <field column="id"  name="id" />
            <field column="username"  name="username" />
            <field column="password"  name="password" />
    </entity> 
  </document>  
</dataConfig>

我认为,上面的内容无需多言,都应该知道是什么意思了!

3)在solrconfig.xml配置文件中引入data-config.xml文件

在同标签下添加如下内容:

<!-- 配置数据库连接 -->
<requestHandler name="/dataimport" class="solr.DataImportHandler"> 
  <lst name="defaults"> 
	<str name="config">data-config.xml</str> 
  </lst> 
</requestHandler>

4)测试同步功能

我们进行查询,可以发现数据库的数据成功的同步过来了:

3.配置定时同步

1)配置dataimport.properties

在solr_home目录下新建conf文件夹,该文件夹下放入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=core1
 
#  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=8983
 
#  application name/context
#  [defaults to current ServletContextListener's context (app) name]
#  这里默认不改
webapp=solr
 
#  URL params [mandatory]
#  remainder of URL
#  这里改成下面的形式,solr同步数据时请求的链接
params=/dataimport?command=full-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

2)准备定时同步数据的jar包和其他相关jar包

这个jar包在网上有诸多的争议,有一些已经不支持老版本的solr,但是我在CSDN找到了一位老哥的资源,亲测可用:

https://download.csdn.net/download/csdn_fan321/10222478

下载好solr-dataimportscheduler-1.1.0.jar

将jar包放入指定路径下:XX\solr-7.6.0\server\solr-webapp\webapp\WEB-INF\lib

3)在web.xml中加入如下监听器

<listener>
 <listener-class>
	org.apache.solr.handler.dataimport.scheduler.ApplicationListener
 </listener-class>
</listener>

4)重启我们的solr服务器

稍微等待那么一分钟,你会发现导入成功了! 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值