(solr系列:五) solr定时实时重建索引和增量更新

简介:

将mysql中的数据导入到了solr中之后,如果数据库中的数据有变动,solr中还是第一次导入的旧的数据,那该如何是好呢?该如何实现mysql数据库中的数据定时同步到solr中呢?下面将做详细的介绍。

准备工作要做好:

    1、下载jar包:solr-dataimportscheduler-1.1.jar http://pan.baidu.com/s/1hsySs2S

     2、新建文件:dataimport.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
54
#################################################
#                                               #
#       dataimport scheduler properties         #
#                                               #
#################################################
 
#  to sync or not to sync
#  1 - active; anything else - inactive
# 这里的配置不用修改
syncEnabled=1
 
#  which cores to schedule
#  in a multi-core environment you can decide which cores you want syncronized
#  leave empty or comment it out if using single-core deployment
#  修改成你所使用的core,我这里是我自定义的core:simple
syncCores=simple
 
#  solr server name or IP address
#  [defaults to localhost if empty]
这个一般都是localhost不会变
server=localhost
 
#  solr server port
#  [defaults to 80 if empty]
#  安装solr的tomcat端口,如果你使用的是默认的端口,就不用改了,否则改成自己的端口就好了
port=8080
 
#  application name/context
#  [defaults to current ServletContextListener's context (app) name]
#  这里默认不改
webapp=solr
 
#  URL params [mandatory]
#  remainder of URL
#  这里改成下面的形式,solr同步数据时请求的链接
params=/dataimport?command=delta-import&clean=false&commit=true
 
#  schedule interval
#  number of minutes between two runs
#  [defaults to 30 if empty]
#这里是设置定时任务的,单位是分钟,也就是多长时间你检测一次数据同步,根据项目需求修改
#  开始测试的时候为了方便看到效果,时间可以设置短一点
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


准备好这一个jar包和dataimport.properties文件,开始下面的步骤……

步骤一:将solr-dataimportscheduler-1.1.jar包复制到apache-tomcat-7.0.72\webapps\solr\WEB-INF\lib中。

步骤二:在apache-tomcat-7.0.72\webapps\solr\WEB-INF目录下的web.xml文件中添加监听配置:

1
2
3
4
5
    < listener >
      < listener-class >
         org.apache.solr.handler.dataimport.scheduler.ApplicationListener
      </ listener-class >
    </ listener >

温馨提示:

   复制上面这段时注意org.apache.solr.handler.dataimport.scheduler.ApplicationListener后面不要有空格,不然启动tomcat会有奇怪的错误,别问我为什么知道的j_0066.gif

步骤三:在\solrhome目录下新建一个conf文件夹(与simple文件夹同目录),将dataimport.properties文件放在conf文件夹中。

步骤四:重启tomcat,浏览器访问:localhost:8080/solr

wKioL1gJyleyR_5pAAFYHSuODkU973.png


苦苦等待一分钟之后……j_0016.gif,再次查询如果看到数据改过来了,那么恭喜你,新技能get√!

如图:

wKioL1gJy1CAoYX8AAFWTP4JYMA991.png




本文转自 兴趣e族 51CTO博客,原文链接:http://blog.51cto.com/simplelife/1864287

相关文章
|
2月前
|
SQL 关系型数据库 MySQL
Hadoop-25 Sqoop迁移 增量数据导入 CDC 变化数据捕获 差量同步数据 触发器 快照 日志
Hadoop-25 Sqoop迁移 增量数据导入 CDC 变化数据捕获 差量同步数据 触发器 快照 日志
42 0
|
5月前
|
自然语言处理 API 开发工具
Elasticsearch 重建索引 数据迁移
【7月更文挑战第1天】Elasticsearch 更改索引结构、重建索引、数据迁移操作等
|
缓存 分布式数据库 API
hbase查询速度很慢
hbase查询速度很慢
599 1
|
分布式计算 搜索推荐 架构师
【搜索引擎】Solr:提高批量索引的性能
【搜索引擎】Solr:提高批量索引的性能
|
分布式计算 Hadoop
Lucene/Solr 分布式与实时方案收集
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。
121 0
|
存储 监控 数据可视化
Elasticsearch索引增量统计及定时邮件实现
0、需求 随着ELKStack在应用系统中的数据规模的急剧增长,每天千万级别数据量(存储大小:10000000*10k/1024/1024=95.37GB,假设单条数据10kB,实际远大于10KB)的累积成为日常需求。 如何以相对简单的图形化效果展示数据的增量呢? 本文给出思路和实现。
260 0
Elasticsearch索引增量统计及定时邮件实现
|
存储 Java 索引
Elasticsearch全量数据增量遍历实现原理
0、需求 针对凤凰网财经版块的新闻数据和评论数据, 1个索引存储采集凤凰网财经版块的新闻数据;1个索引存储相关的财经数据评论结果。 统计: 1)某条新闻的评论数的多少? 2)某条评论属于哪条新闻? 3)当前已采集数据的所有评论、评论数汇总,按照评论数逆序排序,以便于图形化展示。
496 0
|
SQL 运维 Java
数据查询的玄铁剑:阿里云HBase二级索引功能解析
HBase原生提供了主键索引,用户可以根据rowkey进行高效的单行读、前缀匹配、范围查询操作。但若需要使用属性列进行查询时,则只能使用filter在查询范围内进行逐行过滤。在扫描范围较大时,会浪费大量的IO,请求RT也无法保证。为此,HBase增强版推出了原生二级索引来解决非rowkey查询的性能问题。
2262 0
数据查询的玄铁剑:阿里云HBase二级索引功能解析
|
Java 应用服务中间件 索引
solr7.4定时/实时更新/重建索引配置,及报错404问题解决方案
  本文分两部分: 一、Solr定时/实时更新/重建索引配置。 二、Solr7+版本,服务器启动报错,页面404解决方案。
2769 0