IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Solr连接MySQL数据库实现 全量更新、增量更新、定时增量更新 -> 正文阅读

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

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

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(数据的伪删除状态字段)

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
	<dataSource name = "source1" type = "JdbcDataSource" 
				driver = "com.mysql.cj.jdbc.Driver"
				url = "jdbc:mysql://192.168.0.151:3306/db_card?characterEncoding=utf-8&amp;serverTimezone=UTC&amp;useSSL=false" 
				user="root" 
				password = "root"
				encoding="UTF-8"/>
	<document>
		<entity name = "svc_shop_goods" processor = "SqlEntityProcessor" pk="goods_id"
			query = "SELECT goods_id, goods_name, goods_price FROM svc_shop_goods WHERE is_delete = 0"
            deltaImportQuery = "SELECT goods_id, goods_name, goods_price FROM svc_shop_goods WHERE is_delete = 0 AND goods_id = '${dih.delta.shop_goods_id}'
            deltaQuery="SELECT goods_id FROM svc_shop_goods DATE_ADD(gmt_modified, INTERVAL -8 HOUR) > '${dataimporter.last_index_time}' AND is_delete = 0" 
			deletedPkQuery = "SELECT goods_id FROM svc_shop_goods WHERE is_delete = '1'" >
				<field name = "id" column = "shop_goods_id"/>
				<field name = "goods_name" column = "shop_goods_name"/>
                <field name = "goods_price" column = "shop_goods_price"/>
		</entity>
	</document>
</dataConfig>

因为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的配置

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

在 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进行测试一下

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-06 11:06:45  更:2022-05-06 11:07:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:31:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码