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

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

准备工作要做好:

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

2、新建文件:dataimport.properties,文件复制下面的就好,具体配置含义已给出注释:

#################################################
#                                               #
#       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文件中添加监听配置:

   <listener>
	 <listener-class>
	    org.apache.solr.handler.dataimport.scheduler.ApplicationListener
	 </listener-class>
   </listener>

温馨提示:

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

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

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

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

如图:

时间: 2024-11-03 01:24:45

(solr系列:五) solr定时实时重建索引和增量更新的相关文章

对比:重建索引与更新统计

最近经常被问到的一个问题是关于在数据库维护过程,重建索引与更新统计的执行先后次序.通常,需要考虑以下几点,这里注意的是有两种统计:索引统计.列统计. 1)默认情况下,UPDATE STATISTICS 将会更新索引统计和列统计,如果语句中仅使用了COLUMNS选项,则只更新列统计,若仅使用了INDEX选项,则只更新索引统计 2)默认情况下,UPDATE STATISTICS语句仅采样表的一部分数据,使用UPDATE STATISTICS WITH FULLSCAN则会扫描全表 3)重建索引(如使

[摘]全文检索引擎Solr系列—–全文检索基本原理

原文链接--http://www.importnew.com/12707.html 全文检索引擎Solr系列-–全文检索基本原理 2014/08/18 | 分类: 基础技术, 教程 | 2 条评论 | 标签: solr 分享到: 64 本文作者: ImportNew - 刘志军 未经许可,禁止转载! 场景:小时候我们都使用过新华字典,妈妈叫你翻开第38页,找到"坑爹"所在的位置,此时你会怎么查呢?毫无疑问,你的眼睛会从38页的第一个字开始从头至尾地扫描,直到找到"坑爹&quo

全文检索引擎Solr系列——Solr核心概念、配置文件

Document Document是Solr索引(动词,indexing)和搜索的最基本单元,它类似于关系数据库表中的一条记录,可以包含一个或多个字段(Field),每个字段包含一个name和文本值.字段在被索引的同时可以存储在索引中,搜索时就能返回该字段的值,通常文档都应该包含一个能唯一表示该文档的id字段.例如: 1 2 3 4 5 6 7 8 <doc>     <field name="id">company123</field>     &

solr搜索之tomcat运行solr(五)

1      tomcat上运行solr 准备环境: apache-tomcat-7.0.77.zip, solr-4.10.2.zip, java version:1.7 下载tomcat:http://tomcat.apache.org/ 下载solr:http://lucene.apache.org/solr/ or  http://www.apache.org/dyn/closer.cgi/lucene/solr/ ====================================

项目之solr全文搜索工具之创建项目索引库

以创建项目baotao core为例 1.  在example目录下创建baotao-solr文件夹: 2.  将./solr下的solr.xml拷贝到baotao-solr目录下: 3.  在baotao-solr下创建baotao目录,并且在baotao目录下创建conf和data目录: 4.  将example\solr\collection1\core.properties文件拷贝到example\baotao-solr\baotao下,并且修改name=baotao: 5.  将exa

sql server 索引阐述系列五 索引参数与碎片

-- 创建聚集索引 create table [dbo].[pub_stocktest] add constraint [pk_pub_stocktest] primary key clustered ( [sid] asc )with (pad_index = off, statistics_norecompute = off, sort_in_tempdb = off, ignore_dup_key = off, online = off, allow_row_locks = on, all

Elasticsearch系列---实战零停机重建索引

前言 我们使用Elasticsearch索引文档时,最理想的情况是文档JSON结构是确定的,数据源源不断地灌进来即可,但实际情况中,没人能够阻拦需求的变更,在项目的某个版本,可能会对原有的文档结构造成冲击,增加新的字段还好,如果要修改原有的字段,只能重建索引了. 概要 本篇以实战方式讲解如何零停机完成索引重建的三种方案. 外部数据导入方案 整体介绍 系统架构设计中,有关系型数据库用来存储数据,Elasticsearch在系统架构里起到查询加速的作用,如果遇到索引重建的操作,待系统模块发布新版本后

Apache Kafka系列(五) Kafka Connect及FileConnector示例

Apache Kafka系列(一) 起步 Apache Kafka系列(二) 命令行工具(CLI) Apache Kafka系列(三) Java API使用 Apache Kafka系列(四) 多线程Consumer方案 Apache Kafka系列(五) Kafka Connect及FileConnector示例 一. Kafka Connect简介 Kafka是一个使用越来越广的消息系统,尤其是在大数据开发中(实时数据处理和分析).为何集成其他系统和解耦应用,经常使用Producer来发送消

Maven 系列 五 :使用Nexus搭建Maven私服

1 . 私服简介 私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件.有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库:否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载.                                                  我们可以使用专门的 Maven 仓库管理软件来搭建私服,比如:Apache Archiva,Artifactory,Sonatype Nexus.这