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

 

posted @ 2015-10-30 12:22  王南辉  阅读(377)  评论(0编辑  收藏  举报