解决Solr增量导入MySQL数据的问题

步骤一:在solrconfig.xml中插入一个新的requestHandler,增加如下几行

<requestHandler name="/dataimportcommentdelta" class="org.apache.solr.handler.dataimport.DataImportHandler"> 
<lst name="defaults"> 
<str name="config">data-config-comment-delta.xml</str>    
</lst> 
</requestHandler>

步骤二:编写data-config-comment-delta.xml,写入如下内容,注意query中的条件,dih.last_index_time,表示solr上一次做索引的时间。Solr执行这个配置的full-import实际上就等价于增量导入数据

<dataConfig>
   <dataSource type="JdbcDataSource" 
              driver="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost/mooc" 
              user="root" 
              password="root"/>
   <document>
    <entity name="comment" 
    query="SELECT id, DATE_FORMAT(writetime, ‘%Y-%m-%dT%TZ‘) as ‘writetime‘, title from comment WHERE DATE(updatetime) > ‘${dih.last_index_time}‘ OR DATE(writetime) > ‘${dih.last_index_time}">       
       <field column="id" name="id"/>      
       <field column="writetime" name="writetime"/>
       <field column="title" name="title"/>           
    </entity>      
  </document>
</dataConfig>
时间: 2024-10-07 01:55:17

解决Solr增量导入MySQL数据的问题的相关文章

Solr配置导入MySQL数据

1. 编写配置文件 1)编写data-config-comment.xml,此文件用于描述如何查询MySQL数据,如何将数据变换导入索引. 假设有一个数据库叫mooc,其中有个表叫comment,代表学生的评论 其中: entity对应MySQL数据库表中的一行 query对应全库导入的SQL查询 queryImportQuery 对应增量导入的SQL查询 deltaQuery对应增量导入获取最新修改的行ID,这些ID用于queryImportQuery,SQL的含义中 DATE(updatet

10.Solr4.10.3数据导入(DIH全量增量同步Mysql数据)

转载请出自出处:http://www.cnblogs.com/hd3013779515/ 1.创建MySQL数据 create database solr; use solr; DROP TABLE IF EXISTS student; CREATE TABLE student ( id char(10) NOT NULL, stu_name varchar(50) DEFAULT NULL, stu_sex int(1) DEFAULT NULL, stu_address varchar(20

我与solr(二)--导入mysql数据库

关于solr的搭建详见上一篇的随笔. 步骤1: 在webapps中solrhome下新建一个文件夹名字叫做mynode(名字不固定,可以随便取,但是这个名字在后面的配置中会有所关联.)然后在mynode文件下新建一个名字叫做conf的文件夹(这个文件名字最后不要改.)然后把官网下下来的solr项目中solr-6.0.0\server\solr\configsets\data_driven_schema_configs\conf下的所有东西复制到conf中去.(注意不要复制错!)最后把solr-6

如何导出和导入mysql数据(数据迁移)

本文转自 如何导出和导入mysql数据(数据迁移) 这是其中一种方法,非常简单 1. 导出数据库数据 mysqldump -uroot -p dp_db > dumpout.sql 其中 root是账户名 dp_db是需要导出的数据库名称 dumpout.sql存储导出的数据 2. 将导出的数据dumpout.sql放到你的目标机器上(如果是远程目标机器的话,直接将dunmpout.sql copy到目标机器就行).这里假设cp到主目录下~/ 3. 在目标机器的数据库里建立新数据库,这里建立名为

SOLR环境搭建以及全量导入MYSQL数据

SOLR文档 前言 因为项目中要用到solr,因此花了一周多的时间研究了一下solr,其中的各种问题我就不说了,特别是这两天在研究定时增量索引的时候,心里不知道多少个XXX在奔腾,好了,废话不多说,下面把我得研究成果跟大家分享一下,另外对于SOLR是什么,大家还是自行度娘吧,让我说我也说不清楚. 版本 SOLR SOLR最新的版本是5.3,但是我没有用最新的版本,用的是4.10.4. JDK JDK的版本是jdk1.7.0_13,这里要说一下的就是4.10版本的SOLR需要1.7以上的JDK,刚

Solr Dataimporthandler 导入MySQL 内存溢出。

最近准备把一千九百多万数据导入Solr中,在以前测试数据只有一两百万,全量导入没有任务问题.但是,换成一千九百万数据时,solr报内存异常,整个tomcat无法使用.我发现,我给tomcat最大堆内存512M.我觉得,可能是内存过小,于是,我把内存改大些,1024M(set JAVA_OPTS=-server -Xms1024m -Xmx1024m -XX:PermSize=128M -XX:MaxPermSize=256M ).结果,还是内存溢出.我想已经不是tomcat内存的问题(当然,如果

logstash增量同步mysql数据到es

本篇本章地址:https://www.cnblogs.com/Thehorse/p/11601013.html 今天我们来讲一下logstash同步mysql数据到es 我认为呢,logstash是众多同步mysql数据到es的插件中,最稳定并且最容易配置的一个. input { stdin { } jdbc { type => "xxx" jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/yinhela

Solr-5.3.1 dataimport 导入mysql数据

最近需要计算制造业领域大词表每个词的idf,词表里一共九十多万个词,语料一共三百七十多万篇分词后文献.最开始尝试用程序词表循环套语料循环得到每个词的idf,后来又尝试把语料存入mysql然后建立全文索引再循环用sql语句去查每个词的idf,效率都十分不理想. 最新的想法是利用solr搜索引擎的速度来做,所以首先要把mysql的数据导入solr. 未完

Canal——增量同步MySQL数据到ES

1.准备 1.1.组件 JDK:1.8版本及以上: ElasticSearch:6.x版本,目前貌似不支持7.x版本:     Canal.deployer:1.1.4 Canal.Adapter:1.1.4 1.1.配置 需要先开启MySQL的 binlog 写入功能,配置 binlog-format 为 ROW 模式 找到my.cnf文件,我的目录是/etc/my.cnf,添加以下配置: log-bin=mysql-bin # 开启 binlog binlog-format=ROW # 选择