create table `test`.`business_info`(
`ID` INT not null auto_increment,
`business_name` CHAR(255),
`business_type` CHAR(50),
`updatetime` DATETIME not null,
primary key (`ID`)
);
create unique index `PRIMARY` on `test`.`business_info`(`ID`);
insert into business_info(business_name,business_type,updatetime) values('cup','Inter-i5','2013-09-07 09:08:00');
insert into business_info(business_name,business_type,updatetime) values('cup','Inter-i3','2013-09-06 09:06:00');
insert into business_info(business_name,business_type,updatetime) values('cup','Inter-i7','2013-09-06 09:06:00');
insert into business_info(business_name,business_type,updatetime) values('cup1','Inter-i5','2013-09-05 09:08:00');
insert into business_info(business_name,business_type,updatetime) values('cup1','Inter-i3','2013-09-07 09:08:00');
insert into business_info(business_name,business_type,updatetime) values('cup1','Inter-i7','2013-09-06 09:08:00');
insert into business_info(business_name,business_type,updatetime) values('cup2','Inter-i5','2013-09-05 09:08:00');
insert into business_info(business_name,business_type,updatetime) values('cup2','Inter-i3','2013-09-07 09:08:00');
insert into business_info(business_name,business_type,updatetime) values('cup2','Inter-i7','2013-09-06 09:08:00');
insert into business_info(business_name,business_type,updatetime) values('cup3','Inter-i5','2013-09-05 09:08:00');
insert into business_info(business_name,business_type,updatetime) values('cup3','Inter-i3','2013-09-07 09:08:00');
insert into business_info(business_name,business_type,updatetime) values('cup3','Inter-i7','2013-09-06 09:08:00');
↑
以上是在 mysql 中的数据库test 建立数据表 business_info,并插入数据(准备生成索引的数据)
(按照solr 的tomcat配置的位置说明)
在/opt/tomcat/webapps/solr/WEB-INF/lib/ 目录下添加一下jar包
solr-dataimporthandler-4.10.1.jar
solr-dataimporthandler-extras-4.10.1.jar
mysql-connector-java-5.1.10-bin.jar
数据准备完毕后配置各种xml文件
一、配置solrconfig.xml
添加:requestHandler
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config"><span style="color:#FF0000;">data-config.xml</span></str><!--此处的data-config.xml 主要是用配置数据库连接信息 可以和 solrconfig.xml放在同一目录 -->
</lst>
</requestHandler>
二、配置 data-config.xml 文件(名字可以随意定义,只要与solrconfig.xml中配置的一致即可,配置文件 和 solrconfig.xml在同一目录)
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/test"
user="root"
password="zhu"
<span style="color:#FF0000;"> batchSize="-1"</span>/><!-- 注意:mysql中一定要batchSize="-1" 否则会报异常-->
<document>
<entity name="business_info" pk="id"
query="select id,business_name,business_type from business_info"
deltaImportQuery="select id,business_name,business_type from business_info where id='${dataimporter.delta.ID}'"
deltaQuery="select id,business_name,business_type from business_info where to_char(updatetime,'yyyy-mm-dd hh24:mi:ss')> '${dataimporter.last_index_time}'">
<field column="id" name="id"/>
<field column="business_name" name="business_name"/>
<field column="business_type" name="business_type"/>
</entity>
</document>
</dataConfig>
三、配置schema.xml文件 添加一下字段(也就是要生成索引的数据库字段) (根据上一篇IK分词的设置,也可以把字段设置成需要分词的)
<field name="id" type="string" indexed="true" stored="true" multiValued="false" required="true"/>
<field name="business_name" type="string" indexed="true" stored="true" multiValued="false" />
<field name="business_type" type="string" indexed="true" stored="true" multiValued="false" />
<field name="updatetime" type="string" indexed="true" stored="true" multiValued="false" />
四、注意collection 下面的conf中不要缺少配置文件
当你建立完data-config.xml 目录里会多出 data-config.xml文件
五、重启服务,导入数据
六、查询测试:
OK tomcat版本的数据源连接配置结束 如果出现异常 可以查看Logging 的详细信息,仔细研究