配置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中添加下面代码。

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

3.依赖包放在D:\solr-7.7.3\server\solr-webapp\webapp\WEB-INF\lib目录下,mysql包(对应mysql版本下面为8.0的jar包)、自动更新的数据包。