solor mysql_solr 同步 mysql

一、首先创建一个数据库和表

这里创建了一个表,加上了测试数据,注意这里有一个字段来记录更新时间  update_date

a20a232125894e86ec0f5610ac94f70d.png

二、修改配置文件

我们首先介绍全量同步,再介绍增量同步

990ed9e7293ce9582622a8951e72b55d.png

我的 solr 版本是 7.5 的,new_core是我创建的 core,打开 solrconfig.xml,增加如下配置

data-config.xml

然后在当前 conf 目录下创建 data-config.xml

query="SELECT id, content,object_id,type,update_date,create_date FROM ho_front_message"

>

注意:修改 mysql 连接地址和数据库名和用户名和密码

entity 标签下

-name:表名

-pk:主键名

-query:查询语句,全量同步下会同步当前表中哪些数据

-field:表子段映射,注意时间格式

以上需要同步的表子段,需要配置到 managed-schema.xml ,对于已有的字段,不需要添加,例如 id 字段

注意 type="pdate" 因为我的 solr 是7.5 版本的

三、测试数据

66a02804141c306cdfdd667ecd060c62.png

选择 full-import  全量导入

勾选 clean 表示导入之前会清空数据

entity 选择我们在data-config.xml创建的

29aaf02caebca4b9483e75e5e6bd59de.png

可以看到数据已经查询出来了

四、增量同步

修改 data-config.xml

query="SELECT id, content,object_id,type,update_date,create_date FROM ho_front_message"

deltaQuery="select id from ho_front_message where update_date > '${dih.last_index_time}'"

deltaImportQuery="select * from ho_front_message where id='${dih.delta.id}'"

deletedPkQuery="select id from ho_front_message where enable_flag='0'"

>

deltaQuery:增量索引查询主键ID

deltaImportQuery:增量索引查询导入的数据

deletedPkQuery:此操作值查询那些数据库里伪删除的数据的ID(enable_flag=0的数据)

配置完后后,打开数据库修改其中一条记录的值和update_date

update ho_front_message set content='xxxx' ,update_date=now() where id='xxx'

导入增量数据,勾选 delta-import

5da911bd37b8fc98c22a4b5280201f60.png

再次查询看看增量数据是否正确

badd3c97d40b50920d8e653a6750039e.png

删除数据就是把某条数据的 enable_flag=0 ,再操作一下增量导入

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/406043.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++调用Python函数

From: http://www.flatws.cn/article/program/c/2010-08-24/9677.html Python代码在实现某些功能的时候非常方便,如果能够将Python代码与C程序结合起来,那么一定会使Problem Solving方便许多(比如,游戏脚本系统)~ 从学…

配置ubuntu使用console登录登录欢迎提示

使用ssh或console登陆成功后,ubuntu会顺序执行/etc/update-motd.d中的脚本 有些linux的登陆提示信息放在了/etc/ssh/sshd_config中的Banner配置项中 转载于:https://www.cnblogs.com/chen310/p/4431474.html

网络命令大全(9)--runas

Runas 允许用户用其他权限运行指定的工具和程序,而不是用户当前登录提供的权限。语法runas [{/profile/noprofile}] [/env] [/netonly] [/smartcard] [/showtrustlevels] [/trustlevel] /user:UserAccountName program 参数/profile 加载用户的配置文件。/profile 是…

java canvas 缩放图片_详解如何用HTML5 Canvas API控制图片的缩放变换

摘要:这篇HTML5栏目下的“详解如何用HTML5 Canvas API控制图片的缩放变换”,介绍的技术点是“html5_canvas、canvas、Html5、控制图片、api、图片”,希望对大家开发技术学习和问题解决有帮助。缩放变换scale(sx,sy)传入两个参数,分…

C语言中执行python代码或源程序文件(高级嵌入方式)

环境:Fedora12 Python2.6 C 1. 建立python源代码文件(del.py): #!/usr/bin/env pythondef calculate(expression):try:result eval(expression)except:print("Eval Error!")return Nonereturn resultif __name__ "__main__":f …

向周鸿祎的360安全浏览器学互联网产品运营和推广

做互联网产品运营就要像周鸿祎一样,老周一直是运营流的大力倡导者,而360安全浏览器则是老周给我们上的产品运营又一课,醍醐灌顶,如梦初醒。 下图是截止到今年6月中国网民的浏览器使用情况图: 根据CNZZ的数据&#xff0…

java中的locksupport_java中线程的停止以及LockSupport工具类

看jstack输出的时候,可以发现很多状态都是TIMED_WAITING(parking),如下所示:"http-bio-8080-exec-16" #70 daemon prio5 os_prio0 tid0x00007f6088027800 nid0x3a1f waiting on condition [0x00007f60fcd03000]java.lang.Thread.St…

React小结

1. setState setState更新状态的2种写法 (1). setState(stateChange, [callback])------对象式的setState 1.stateChange为状态改变对象(该对象可以体现出状态的更改) 2.callback是可选的回调函数, 它在状态更新完毕、界面也更新后(render调用后)才被调用 (2). setState(updat…

4-17学习

//设置自动行数与字符换行 [label setNumberOfLines:0]; label.lineBreakMode UILineBreakModeWordWrap; /** 去除多余分割线 */ self.tableView.tableFooterView [[UIView alloc]init];转载于:https://www.cnblogs.com/pocket-mood/p/4435711.html

PyRun_SimpleFile()崩溃问题

From: http://blog.csdn.net/jq0123/article/details/1504406 PyRun_SimpleFile()造成程序崩溃.例程如下:#include "python.h"int main(){ Py_Initialize(); FILE * fp fopen("test.py", "r"); if …

翻译:Asp.net中多彩下拉框的实现

开发背景: 有人曾经要我开发一个根据不同选择而显示不同颜色的管理工具。我开始考虑利用下拉框来实现条目背景及显示颜色根据条目名称不同而进行变化,根据这个思路我在网上搜了半天也没有找到任何相关的解决方案,最后我想到了一个比当初需…

深入react技术栈(8):事件系统

我是歌谣 放弃很容易 但是坚持一定很酷 微信公众号搜索前端小歌谣获取前端知识 1合成事件的绑定方式 2合成事件的实现机制 3在React中使用原生事件 4合成事件和原生事件混用 5对比react与原生事件 文章参考深入React技术栈

java mac jconsole_解决java maven项目找不到jconsole-1.8.0.jar和tools-1.8.0.jar包问题

今天遇到了这样一种情况,自己的maven项目中并没有引用的jar包出现在了Maven Dependencies的依赖包中。而我在pom.xml自己没有没有引入啊.图示怀疑是自己的alibaba 的druid所依赖的包:com.alibabadruid1.0.14然后查看了它的相关依赖,果然找到了…

PyRun_SimpleString的无穷怨念

From: http://blog.csdn.net/ccat/article/details/544491 好吧,我承认我是个菜鸟,所以今天我勇敢的站出来接受大家的鄙视…… 话说早上同事喊我帮他改段程序,很简单,就是用PyRun_SimpleString函数执行一段Python脚本。错误也很直…

劳心者、劳力者或CEO、CTO各得其所,足矣

昨天在手机上看到了“清华学生借鉴百度技术自主研发手机框计算”的新闻,又是“计算”,很容易就与“云计算”联系起来了,挺有兴趣了解一下中国百度的“框计算”。毕竟我之前只是知道这么一个名词,没想到这么快就有了研发、应用&…

hdu 1754 I Hate It(线段树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid1754 I Hate It Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 45334 Accepted Submission(s): 17789 Problem Description很多学校流行一种比…

java numa_Java只使用2个CPU中的1个和NUMA(Neo4J)

我正在研究一个java程序来创建一个非常大的Neo4J数据库.我使用batchinserter和Executors.newFixedThreadPool来加快速度.我的Win2012R2服务器有2个cpu(26核心26超线程)和256GB NUMA架构.我的问题是,我的导入器只使用1个CPU(节点).是否有可能只使用一个javaprocess的NUMA节点&am…