博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Solr Data Import Request Handler Scheduler
阅读量:5101 次
发布时间:2019-06-13

本文共 2214 字,大约阅读时间需要 7 分钟。

转载自: 

Scheduler主要解决两个问题:

1.定时增量更新索引。

2.定时重做索引。

经过测试,Scheduler已经可以实现完全基于配置,无需开发功能,无需人工干预的情况下实现以上两个功能(结合 Solr 的 Data Import Request Handler前提下)。

为了方便以后使用,我将代码放到上,地址是: 

这里贴出一下主要的代码备忘:

SolrDataImportProperties.java 配置文件读取:

View Code

BaseTimerTask.java  TimerTask基类,封装了一些基本的属性读取、请求发送方法:

View Code

DeltaImportHTTPPostScheduler.java 增量索引更新任务计划:

View Code

FullImportHTTPPostScheduler.java 重做索引任务计划:

View Code

ApplicationListener.java 调用任务计划的Listener:

View Code

 

使用说明

1.将上面的编译文件打包成 apache-solr-dataimportscheduler-1.0.jar, 然后和solr自带的 apache-solr-dataimporthandler-*.jar, apache-solr-dataimporthandler-extras-*.jar 放到solr.war的lib目录下面
2.修改solr.war中WEB-INF/web.xml, 在servlet节点前面增加:

org.apache.solr.handler.dataimport.scheduler.ApplicationListener

3.将apache-solr-dataimportscheduler-.jar 中 dataimport.properties 取出并根据实际情况修改,然后放到 solr.home/conf (不是solr.home/core/conf) 目录下面

4.重启tomcat或者jboss 即可

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 syncCores=core1,core2  # solr server name or IP address # [defaults to localhost if empty] server=localhost  # solr server port # [defaults to 80 if empty] port=8080  # application name/context # [defaults to current ServletContextListener's context (app) name] webapp=solr  # URL params [mandatory] # remainder of URL 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=/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

转载于:https://www.cnblogs.com/chenying99/archive/2012/07/28/2613416.html

你可能感兴趣的文章
LLVM每日谈之二十一 一些关于编译器和LLVM/Clang的代码
查看>>
树形Dp
查看>>
TCP网络编程中RST分节总结
查看>>
Xcode快捷键
查看>>
SVM(三)—Kernels(核函数)
查看>>
基于RPC原理的Dubbo
查看>>
【Spark调优】聚合操作数据倾斜解决方案
查看>>
本周个人总结
查看>>
Ubuntu10.10下ftp的安装配置
查看>>
【转】单调队列初步
查看>>
Grep与web漏洞挖掘<转>
查看>>
树链剖分【p3038】[USACO11DEC]牧草种植Grass Planting
查看>>
.Net中的AOP系列之《单元测试切面》
查看>>
SqlServer根据表中ID加序号
查看>>
python之路_kindEditor编辑器及beautifulsoup模块
查看>>
(zz)最大子序列和问题
查看>>
C# Windows Api的一些方法 封装 以及 常用参数
查看>>
Spark RDD概念学习系列之Pair RDD的分区控制
查看>>
Hadoop工作流--JobControl(五)
查看>>
golang range循环内部
查看>>