标签:
当数据库的数据发生改变的时候,我们不想手动的去重新添加数据库的数据导solr索引库中,所以用到定时添加索引。增删改的数据。现在写的这些都是基于我之前做的一步步到这来的。
将solr/dist下的solr-dataimporthandler-4.8.1.jar、solr-dataimporthandler-extras-4.8.1.jar这两个包拷贝到tomcat/webapps/solr/lib下,还有下载apache-solr-dataimportscheduler.jar也拷贝到tomcat/webapps/solr/lib下,下载链接apache-solr-dataimportscheduler.jar的下载链接。
修改solr\home\mycore\conf下的data-config.xml文件。
<dataConfig> <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/courseman" user="root" password="mysql" /> <document> <entity pk="ID" dataSource="courseman" name="student" query="select * from student WHERE deleteStatus=0 " deltaQuery="select ID from student where createTime > ‘${dataimporter.last_index_time}‘" deletedPkQuery="select ID from student where deleteStatus=1" deltaImportQuery="select * from student where ID=‘${dataimporter.delta.ID}‘" > <field column="ID" name="id" /> <field column="name" name="name" /> <field column="gender" name="gender" /> <field column="major" name="major" /> <field column="grade" name="grade" /> <field column="deleteStatus" name="deleteStatus" /> <field column="createTime" name="createTime" /> <field column="updateTime" name="updateTime" /> </entity> </document> </dataConfig>
假如deltaQuery满足条件有5条数据,deletedPkQuery满足条件有3条数据,那么这5条数据就会被更新进来,这3条数据呢就会被删除掉,原有的数据还存在。是根据原有的数据更新的。具体是怎么样的还有待研究。
在tomcat\webapps\solr\WEB-INF\web.xml加入这句话:
<listener> <listener-class>org.apache.solr.handler.dataimport.scheduler.ApplicationListener</listener-class> </listener>
这个class是在apache-solr-dataimportscheduler.jar包下的。
在solr\home文件下创建conf文件夹,原本是没有的,要自己创建。不是solr\home\mycore\conf。启动tomcat的时候他会去找solr目录下home\conf。如果没有找到,启动报错,访问不到路径,报404错。
在这个conf文件下创建dataimport.properties并添加内容
interval=1 port=8983 server=localhost params=/dataimport?command=delta-import&clean=false&commit=true webapp=solr reBuildIndexInterval=1 syncEnabled=1 reBuildIndexBeginTime=03:10:00 reBuildIndexParams=/dataimport?command=full-import&clean=true&commit=true syncCores=mycore
interval:
port:solr的端口
server:solr的路径
webapp:solr名称
syncCores:索引库位置,可以多个,用逗号隔开。
标签:
原文地址:http://www.cnblogs.com/hjy9420/p/4229696.html