Solr连接MySQL数据库实现 全量更新、增量更新、定时增量更新

Solr连接MySQL数据库实现 全量更新、增量更新、定时增量更新,第1张

安装部署、中文分词、域创建等内容请看上一篇

Windows部署Solr全文检索+中文分词_会飞的哈士奇的博客-CSDN博客_solr 文件检索

增量更新

打开你的自定义的域(我的叫shopCore) 下的conf文件夹, 编辑data-config.xml文件

路径为 : solr-8.10.1\server\solr\shopCore\conf\data-config.xml

query  全部数据
deltaImportQuery  更新数据
deltaQuery  需要更新的数据(只能返回ID)
deletedPkQuery  需要删除的数据(只能返回ID)

${dataimporter.last_index_time} 为内部变量 (最后一次更新索引的时间)

${dih.delta.goods_id} 为内部变量(索引数据对象)

gmt_modified(自己定义的修改或新增时候的时间记录) 、is_delete(数据的伪删除状态字段)



	
	
		 '${dataimporter.last_index_time}' AND is_delete = 0" 
			deletedPkQuery = "SELECT goods_id FROM svc_shop_goods WHERE is_delete = '1'" >
				
				
                
		
	

因为Solr的时区是中时区,而我的系统是东八区,因此在时间比较的时候我将自己数据库的数据小时减去了8小时

增量更新的执行顺序说明

 定时增量更新

下载定时增量更新jar包

下载地址 : Solr定时更新Solr定时更新-Java文档类资源-CSDN下载

1. 将jar包放入solr-8.10.1\server\solr-webapp\webapp\WEB-INF\lib路径下

2. 修改solr-8.10.1\server\solr-webapp\webapp\WEB-INF\web.xml的配置

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

在 solr-8.10.1\server\solr下手动创建conf文件夹, 将dataimport.properties(定时执行的配置文件)放入此文件夹下

配置文件中内容如下
#################################################
#                                               #
#       dataimport scheduler properties         #
#                                               #
#################################################
 
#  同步开关 1:同步
syncEnabled=1
 
#  要同步的核心,多个用逗号隔开
syncCores=shopCore
 
#  Solr服务器的域名或者IP地址
#  如果为空则走localhost
server=localhost
 
#  Solr服务端口
#  如果为空则走80端口
port=8983
 
#  application name/context
#  [defaults to current ServletContextListener's context (app) name]
webapp=solr
 
# URL参数[必需]
# URL的剩余部分 
params=/dataimport?command=delta-import&clean=false&commit=true

# 计划时间间隔
# 两次运行之间的分钟数
# [如果为空,则默认为30] 
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

 启动 : ./solr.cmd start

 关闭 : ./solr.cmd stop -all

重启Solr进行测试一下

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/799857.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存