solr4 mysql自动更新_solr配置自动增量更新索引

Solr本地环境

1、首先从apache下载最新的solr包,我这里下载到的是4.9的solr包,解压出来以后,把目录下的example文件夹下面所有的文件拷贝到c盘solr目录内,作为solr的运行目录。

2、在该目录内新建一个bat文件,内容如下:

set TITLE=solr

java -Dsolr.solr.home=C:/solrhome -jar start.jar

这个bat文件就可以直接用jetty启动solr

3、本地的数据库表是tf_question主键为QID

配置自动增量更新(删除)索引

1、在C:\solr\solr-webapp\webapp\WEB-INF目录修改web.xml文件,增加一个监听

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

2、将必须的jar包拷贝到C:\solr\solr-webapp\webapp\WEB-INF\lib目录

所需jar包是:MySQL jdbc驱动包(我用的mysql)

solr-dataimporthandler-4.9.0.jar、solr-dataimporthandler-extras-4.9.0.jar  (这两个jar在solr官方的包里面有)

3、编辑C:\solrhome\jyask\conf目录下的schema.xml文件,增加数据库表对应字段映射和主键映射

QID

4、在C:\solrhome\jyask\conf 目录下的solrconfig.xml里配置Handler:(jyask就是我的solr的core)

jyask-data-config.xml

5、在该目录里面新增一个jyask-data-config.xml文件,配置sql逻辑和映射field。

PK为表的主键,这个要跟schema.xml里面的主键映射相同(QID)

如果里面的字段名和schema.xml配置的field的字段名是一样的,这里就不需要配置field,我这里还是加上了。

pk一定要有、deltaQuery和deltaImportQuery是增量更新必须要有的、deletedPkQuery是删除用的,比如说不需要索引那些删除标志是true的,就可以加上这个,如果在DIH的时候不需要删除,就把deletedPkQuery去掉。

如果字段有oracle的clob类型的话,entity要加上一个属性:transformer="ClobTransformer",并且字段field要加上一个属性clob="true"。比如说:,其中CLBO字段的column必须大写!

6、在C:\solrhome新建一个conf文件夹,放入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,多个以,隔开

syncCores=jyask

# solr server name or IP address

# [defaults to localhost if empty]

server=localhost

# solr server port

# [defaults to 80 if empty]

port=8983

# 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,即1天;

# 为空,为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

全部配置完成,以上。

另:solr的http命令:

全部导入,清除所有之前内容:http://localhost:8983/solr/jyask/dataimport?command=full-import&clean=true&commit=true

增量导入,不删除之前内容:http://localhost:8983/solr/jyask/dataimport?command=delta-import&clean=false&commit=true

查看导入的状态(结果):http://localhost:8983/solr/jyask/dataimport?command=status

参考链接:http://www.solr.cc/blog/?page_id=1365

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值