12.solr学习速成之dataimport
solr除了利用solrj建立索引外,还可以由列式数据库hbase触发器添加索引,自动全量或者增量索引关系数据库数据等.
dataimport可以配置从任何关系数据库导入索引
1.将jar包拷贝到tomcat/webapps/solr/web-inf/lib下面
mysql-connector-java-5.1.6.jar
solr-dataimporthandler-5.3.1.jar
solr-dataimporthandler-extras-5.3.1.jar
solr-dataimportscheduler-1.1.jar
2.tomcat/webapps/solr/web-inf/web.xml添加监听
<listener> <listener-class>org.apache.solr.handler.dataimport.scheduler.ApplicationListener</listener-class> </listener>
3.solr_home下建立conf目录,conf目录下建立dataimport.properties文件
syncEnabled=1 syncCores=test server=192.168.126.205 port=8080 webapp=solr #增量 params=/dataimport?command=delta-import&clean=false&commit=true #schedule interval default 30min interval=1 #重做索引的时间间隔,单位分钟,默认7200就是1天 #为空为0或者注释掉,表示永不重做索引 reBuildIndexInterval=2 #重做索引的参数 reBuildIndexParams=/dataimport?command=full-import&clean=true&commit=true #重做索引时间间隔的计时开始时间,第一次真正执行的时间=reBuildIndexBeginTime+reBuildIndexInterval*60*1000 #两种格式:2012-04-11 03:10:00或者 03:10:00,后一种会自动补全日期部分为服务启动的日期 reBuildIndexBeginTime=
4.solr_home下对应core下的conf目录下建立data-config.xml文件
<dataConfig> <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.1.105:3306/test" user="root" password="root"/> <document> <entity name="id" query="select id,arm,name from user"> </entity> </document> </dataConfig>
5.solr_home下对应core下的conf下修改schema.xml
<field name="arm" type="string" indexed="true" stored="true" />
因为name已经存在了,所以就不添加了
6.solr_home下对应core下的conf下修改solrconfig.xml
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst> </requestHandler>
此后数据库有更新,就会导入到solr中