Solr 定时增量索引
solr的定时增量更新需要开启solr的dataimporter功能,过程略
配置solr连接数据库的字段配置
<dataConfig> <dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/world" user="root" password="root" batchSize="-1" /> <document name="products"> <entity pk="NID" name="POIBASEINFO" query="select * from POIBASEINFO" deltaQuery="select NID from POIBASEINFO where CREATED> '${dih.last_index_time}'" deletedPkQuery="select NID from POIBASEINFO where statue=0" deltaImportQuery="select * from POIBASEINFO where NID = '${dih.delta.id}'" transformer="RegexTransformer" > <field column="NID" name="id" /> <field column="NID" name="DOCID" /> <field column="NAME" name="NAME" /> <field column="NAME" name="OTHERNAME" /> <field column="NAME" name="OLDNAME" /> <field column="ABBREVIATION" name="ABBREVIATION" /> <field column="NAME" name="NAMEFORSTORE" /> <field column="ADDRESS" name="ADDRESS" /> <field column="ADDRESS" name="ADDRESSFORSTORE" /> <field column="TELEPHONE" name="PHONE" /> <field column="TELEPHONE" name="PHONEFORSTORE" /> <field column="TYPE" name="TYPE" /> <field column="DISPLAY_X" name="LAT" /> <field column="DISPLAY_Y" name="LON" /> <field column="BOOST" name="BOOST" /> <field column="BRAND" name="BRAND" /> <field column="URL" name="URL" /> <field column="DISPLAY" name="DISPLAY" /> <field column="VANITYCITY" name="TOTALCITY" splitBy = " " /> <field column="NAMEPY" name="PINYIN" /> </entity> </document> </dataConfig>
在solrhome的根目录下不是节点目录下 新建一个conf文件夹里面新建dataimport.properties
syncEnabled=1 syncCores=POI server=127.0.0.1 #监听的地址 port=8080 # 端口号 webapp=solr #名称 params=/dataimport?command=delta-import&clean=false&commit=true #增量索引 interval=1 #间隔时间一分钟计算 reBuildIndexInterval=1000 #间隔时间 reBuildIndexParams=/dataimport?command=full-import&clean=true&commit=true #全库索引 reBuildIndexBeginTime=10:54:00 #开始时间
在webapp的solr的web.xml中配置监听器
<listener> <listener-class>org.apache.solr.handler.dataimport.scheduler.ApplicationListener</listener-class> </listener>
最好放在filter上面
将所需的jar包放到web_info下的
apache-solr-dataimportscheduler.jar
solr-dataimporthandler-4.7.2.jar
solr-dataimporthandler-extras-4.7.2.jar
以及数据库所需的jar
配置完成后重启tomcat
配置日志
将log4jjar放到lib下默认有,在web_info下新建classes 把log4j.properties放入重启tomcat