solr配置(关联数据库,自动从数据库更新数据到solr)
配置mysql的关联
需要使用mysql作为数据源,我们需要增加对mysql使用的jar包 server/solr-webapp/webapp/WEB-INF/lib/
Data-config.xml
Name为对应solr中的Entity
Query为第一次查询数据库的数据,格式为sql语句。
数据库自动更新到solr上:deltaImportQuery中的id通过deltaQuery查询和上次更新时间比较,是否有新的数据存入数据库中,图为最后更新时间。
Filed为solr中的字段。
Managed-schema
关联上data-config.xml中定义的field。
自动更新数据库到solr
1.在solr/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
# 多核心,在多个核心的情况下,有哪些核心需要参与到这次自动更新,逗号是分隔符
syncCores=ztsyyl
# solr server name or IP address
# [defaults to localhost if empty]
#访问ip
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=/dataimport?command=delta-import&clean=false&commit=true
#增量更新的时间间隔,分钟数,为空则默认30分钟
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
2.在D:\solr-7.7.3\server\solr-webapp\webapp\WEB-INF\web.xml中添加下面代码。
org.apache.solr.handler.dataimport.scheduler.ApplicationListener
3.依赖包放在D:\solr-7.7.3\server\solr-webapp\webapp\WEB-INF\lib目录下,mysql包(对应mysql版本下面为8.0的jar包)、自动更新的数据包。