solr4.2增量索引之同步(修改,删除,新增)
solr增量索引配置
1.在进行增量索引前,首先要弄懂几个必要的属性,以及数据库建表事项,和dataimporter.properties
data-config.xml里面的数据
<!-- transformer 格式转化:HTMLStripTransformer 索引中忽略HTML标签 --->
<!-- query:查询数据库表符合记录数据 --->
<!-- deltaQuery:增量索引查询主键ID ---> 注意这个只能返回ID字段
<!-- deltaImportQuery:增量索引查询导入数据 --->
<!-- deletedPkQuery:增量索引删除主键ID查询 ---> 注意这个只能返回ID字段
数据库配置注意事项
1.如果只涉及添加,与修改业务,那么数据库里只需额外有一个timpstamp字段
就可以了,默认值为当前系统时间,CURRENT_TIMESTAMP(笔者的数据为mysql的)
2.如果还涉及删除业务,那么数据里就需额外再多添加一个字段isdelete,int类型的
用0,1来标识,此条记录是否被删除,当然也可以用其他字段标识,ture或false都可以
dataimporter.properties
这个配置文件很重要,它是用来记录当前时间与上一次修改时间的,通过它能够找出,那些,新添加的,修改的,或删除的记录
下面为笔者当时测试时的一个演示,其中添加,修改,删除,都涉及了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
<dataConfig>
<!--- 此段话配置的是一个MySQL的数据源,(数据源也可以配置在solrconfig.xml中) --->
<dataSource name= "mydb" type= "JdbcDataSource" driver= "com.mysql.jdbc.Driver" url= "jdbc:mysql://localhost/test" user= "root" password= "ninemax" />
<document>
<!-- 下面分别来介绍属性(如有错误,欢迎指出) -->
<!-- pk= "ID" 这个很有必要,因为其中的增量索引查询主键ID时需要 -->
<!-- dataSource= "mydb" 这个引用名字是引用上面数据源的名字 -->
<!-- name= "myinfo" 这个名字必须唯一,存在多个实体时 -->
<!-- query="select * from myinfo WHERE isdelete= 0 query查询是指
查询出表里所有的符合条件的数据,因为笔者测试的有删除业务,所以
where 后面有一个限定条件isdelete= 0 ,意思为查询未被删除的数据
(注意这个query查询只对第一次全量导入有作用,对增量导入不起作用) -->
<!--
deltaQuery= "select ID from myinfo where my_date > '${dataimporter.last_index_time}'"
deltaQuery的意思是,查询出所有经过修改的记录的ID
可能是修改操作,添加操作,删除操作产生的
(此查询只对增量导入起作用,而且只能返回ID值) -->
<!--
deletedPkQuery= "select ID from myinfo where isdelete=1"
此操作值查询那些数据库里伪删除的数据的ID(即isdelete标识为 1 的数据)
solr通过它来删除索引里面对应的数据
(此查询只对增量导入起作用,而且只能返回ID值) -->
<!--
deltaImportQuery= "select * from myinfo where ID='${dataimporter.delta.ID}'"
次查询是获取以上两步的ID,然后把其全部数据获取,根据获取的数据
对索引库进行更新操作,可能是删除,添加,修改
(此查询只对增量导入起作用,可以返回多个字段的值,一般情况下,都是返回所有字段的列) -->
<entity pk= "ID" dataSource= "mydb" name= "myinfo" query= "select * from myinfo WHERE isdelete=0 "
deltaQuery= "select ID from myinfo where my_date > '${dataimporter.last_index_time}'"
deletedPkQuery= "select ID from myinfo where isdelete=1"
deltaImportQuery= "select * from myinfo where ID='${dataimporter.delta.ID}'"
>
<!-- 此条记录有必要说一下,ID指定大写的,与上面语句中的对应起来---->
<field column= "ID" name= "id" />
<field column= "name" name= "name" />
<field column= "address" name= "address" />
<field column= "age" name= "age" />
<field column= "my_date" name= "my_date" />
<field column= "isdelete" name= "isdelete" />
</entity>
</document>
</dataConfig>
|
转自:
http://www.jiancool.com/article/12743229775/;jsessionid=14E9B3F1BB33399799884B5C8F15DDE1
本文转自 兴趣e族 51CTO博客,原文链接:http://blog.51cto.com/simplelife/1883024
solr4.2增量索引之同步(修改,删除,新增)相关推荐
- solr4.2增量索引之同步(修改,删除,新增)--转载
原文地址:http://www.jiancool.com/article/12743229775/;jsessionid=14E9B3F1BB33399799884B5C8F15DDE1 solr增 ...
- es修改索引java_Elasticsearch添加修改删除索引文档案例分享
本文介绍如何采用bboss es添加/修改/删除/批量删除elasticsearch索引文档,直接看代码. 添加/修改文档 TAgentInfo agentInfo = new TAgentInfo( ...
- Solr 4.x定时、实时增量索引 - 修改、删除和新增索引
2019独角兽企业重金招聘Python工程师标准>>> 一.开始增量索引前的准备工作. 1.认识data-config.xml中相关属性 <!-- transformer 格式 ...
- Canal Mysql同步至ES/Hbase只有新增时生效,修改删除不生效
问题描述 新增Mysql数据时,ES.Hbase数据会同步成功:当删除Mysql数据,或者修改Mysql数据时同步ES.Hbase数据无变化(PS:修改和删除加上LIMIT xxx 就可以成功.) 问 ...
- [Spring cloud 一步步实现广告系统] 15. 使用开源组件监听Binlog 实现增量索引准备...
MySQL Binlog简介 什么是binlog? 一个二进制日志,用来记录对数据发生或潜在发生更改的SQL语句,并以而进行的形式保存在磁盘中. binlog 的作用? 最主要有3个用途: 数据复制( ...
- Solr与MongoDB集成,实时增量索引[转]
http://www.123905.com/ 一. 概述 大量的数据存储在MongoDB上,需要快速搜索出目标内容,于是搭建Solr服务. 另外一点,用Solr索引数据后,可以把数据用在不同的项目当中 ...
- solr 从数据库导入数据,全量索引和增量索引(实例配置原理)
http://blog.csdn.net/u013378306/article/details/50761610 为防止原文删除特此备份 ------------------------------- ...
- solr 从数据库导入数据,全量索引和增量索引
首先说一下是从MySQL数据库导入数据 这里使用的是mysql测试. 1.先在mysql中建一个表:solr_test 2.插入几条测试数据: 3.用记事本打solrconfig.xml文件,在sol ...
- 转:solr 从数据库导入数据,全量索引和增量索引(实例配置原理)
http://blog.csdn.net/u013378306/article/details/50761610 为防止原文删除特此备份 ------------------------------- ...
- kettle spoon判断增量更新_使用Kettle实现数据实时增量同步--时间戳增量回滚同步...
使用Kettle实现数据实时增量同步 0. 前言 本文介绍了使用Kettle对一张业务表数据(500万条数据以上)进行实时(10秒)同步,采用了时间戳增量回滚同步的方法.关于ETL和Kettle的入门 ...
最新文章
- CISCO交换机如何删除 Vlan
- 神经网络的收敛标准有最优值吗?
- php中的fpm_PHP中的FPM是做什么的
- mcq 队列_基于人工智能的智能体能力倾向问答(MCQ) 套装1
- half-sync/half-async 和 Leader/Followers 模式的主要区别
- 远程桌面 Web 连接
- java中遍历collection_使用Java中的Iterator遍历Collection
- android 图片弹跳效果,设置点的弹跳效果
- html 字体显示倒影,用CSS3的box-reflect设置文字倒影效果的方法讲解
- final阶段成员贡献分
- 视频目标跟踪算法Mean Shift和Particle Filter
- iVX低代码平台系列制作APP简单的个人界面
- 2022年搜索引擎研究报告
- Android应用市场应用转让申请流程
- 公司债务法人代表有义务还吗?
- Comment obtenir des vecteurs de phrases?
- 系统可用性分析方法与设计模板
- 《Hawk: The Blockchain Model of Cryptography and Privacy-Preserving Smart Contracts》 阅读笔记
- ROCm 5.4.3 在 ubuntu 20.04 上安装并运行示例
- Easy3D 点云添加高斯噪声
热门文章
- 在线看Android系统源码,相见恨晚的几种方案
- 判断是否是ie浏览器 前端js_jquery判断是否为ie浏览器的方法
- html输入输出文件,学习如何用 C 语言来进行文件输入输出操作
- 学生选课系统代码--分析2需求分析
- pyton-虚拟环境以及django的初步使用记录信息
- 小学生学计算机动画,小学生电脑绘画软件_电脑绘画之“卡通小熊”
- java 属性类_类和对象系列教材 (九)- Java的类属性,静态属性
- 基于京东家电商品知识图谱的自动问答系统(二) -- IDEA搭建开发环境
- 百度运维部为一间房小学建立公益图书馆
- 资产管理软件 GLPI的安装(转)