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增量索引之同步(修改,删除,新增)相关推荐

  1. solr4.2增量索引之同步(修改,删除,新增)--转载

    原文地址:http://www.jiancool.com/article/12743229775/;jsessionid=14E9B3F1BB33399799884B5C8F15DDE1  solr增 ...

  2. es修改索引java_Elasticsearch添加修改删除索引文档案例分享

    本文介绍如何采用bboss es添加/修改/删除/批量删除elasticsearch索引文档,直接看代码. 添加/修改文档 TAgentInfo agentInfo = new TAgentInfo( ...

  3. Solr 4.x定时、实时增量索引 - 修改、删除和新增索引

    2019独角兽企业重金招聘Python工程师标准>>> 一.开始增量索引前的准备工作. 1.认识data-config.xml中相关属性 <!-- transformer 格式 ...

  4. Canal Mysql同步至ES/Hbase只有新增时生效,修改删除不生效

    问题描述 新增Mysql数据时,ES.Hbase数据会同步成功:当删除Mysql数据,或者修改Mysql数据时同步ES.Hbase数据无变化(PS:修改和删除加上LIMIT xxx 就可以成功.) 问 ...

  5. [Spring cloud 一步步实现广告系统] 15. 使用开源组件监听Binlog 实现增量索引准备...

    MySQL Binlog简介 什么是binlog? 一个二进制日志,用来记录对数据发生或潜在发生更改的SQL语句,并以而进行的形式保存在磁盘中. binlog 的作用? 最主要有3个用途: 数据复制( ...

  6. Solr与MongoDB集成,实时增量索引[转]

    http://www.123905.com/ 一. 概述 大量的数据存储在MongoDB上,需要快速搜索出目标内容,于是搭建Solr服务. 另外一点,用Solr索引数据后,可以把数据用在不同的项目当中 ...

  7. solr 从数据库导入数据,全量索引和增量索引(实例配置原理)

    http://blog.csdn.net/u013378306/article/details/50761610 为防止原文删除特此备份 ------------------------------- ...

  8. solr 从数据库导入数据,全量索引和增量索引

    首先说一下是从MySQL数据库导入数据 这里使用的是mysql测试. 1.先在mysql中建一个表:solr_test 2.插入几条测试数据: 3.用记事本打solrconfig.xml文件,在sol ...

  9. 转:solr 从数据库导入数据,全量索引和增量索引(实例配置原理)

    http://blog.csdn.net/u013378306/article/details/50761610 为防止原文删除特此备份 ------------------------------- ...

  10. kettle spoon判断增量更新_使用Kettle实现数据实时增量同步--时间戳增量回滚同步...

    使用Kettle实现数据实时增量同步 0. 前言 本文介绍了使用Kettle对一张业务表数据(500万条数据以上)进行实时(10秒)同步,采用了时间戳增量回滚同步的方法.关于ETL和Kettle的入门 ...

最新文章

  1. CISCO交换机如何删除 Vlan
  2. 神经网络的收敛标准有最优值吗?
  3. php中的fpm_PHP中的FPM是做什么的
  4. mcq 队列_基于人工智能的智能体能力倾向问答(MCQ) 套装1
  5. half-sync/half-async 和 Leader/Followers 模式的主要区别
  6. 远程桌面 Web 连接
  7. java中遍历collection_使用Java中的Iterator遍历Collection
  8. android 图片弹跳效果,设置点的弹跳效果
  9. html 字体显示倒影,用CSS3的box-reflect设置文字倒影效果的方法讲解
  10. final阶段成员贡献分
  11. 视频目标跟踪算法Mean Shift和Particle Filter
  12. iVX低代码平台系列制作APP简单的个人界面
  13. 2022年搜索引擎研究报告
  14. Android应用市场应用转让申请流程
  15. 公司债务法人代表有义务还吗?
  16. Comment obtenir des vecteurs de phrases?
  17. 系统可用性分析方法与设计模板
  18. 《Hawk: The Blockchain Model of Cryptography and Privacy-Preserving Smart Contracts》 阅读笔记
  19. ROCm 5.4.3 在 ubuntu 20.04 上安装并运行示例
  20. Easy3D 点云添加高斯噪声

热门文章

  1. 在线看Android系统源码,相见恨晚的几种方案
  2. 判断是否是ie浏览器 前端js_jquery判断是否为ie浏览器的方法
  3. html输入输出文件,学习如何用 C 语言来进行文件输入输出操作
  4. 学生选课系统代码--分析2需求分析
  5. pyton-虚拟环境以及django的初步使用记录信息
  6. 小学生学计算机动画,小学生电脑绘画软件_电脑绘画之“卡通小熊”
  7. java 属性类_类和对象系列教材 (九)- Java的类属性,静态属性
  8. 基于京东家电商品知识图谱的自动问答系统(二) -- IDEA搭建开发环境
  9. 百度运维部为一间房小学建立公益图书馆
  10. 资产管理软件 GLPI的安装(转)