原帖链接:http://iamyida.iteye.com/blog/2210621
一、预备工作
本机没有msyql服务先yum装下
yum list installed | grep mysql
若有自带安装的mysql,卸载CentOS系统自带mysql数据库
yum -y remove mysql-libs.x86_64
查看yum库上的mysql版本信息(CentOS系统需要正常连接网络)。
yum list | grep mysql 或 yum -y list mysql*
使用yum安装mysql数据库。
yum -y install mysql-server mysql mysql-devel
启动mysql
service mysqld start
yum装好mysql后root账户是没有密码,给root设置密码(123456)
mysql -uroot -p
显示输入密码时回车进入mysql
mysql > use mysql;
mysql > update user set password=PASSWORD('123456') where user='root';
mysql > flush privileges;
mysql > exit;
再连接mysql
mysql -uroot -p123456
建测试表
添加点数据
退出mysql
二、全量导入
# 复制导入用jar包
cp src/mysql-connector-java-5.1.22-bin.jar tomcat/webapps/solr/WEB-INF/lib/
# 开启导入数据功能(原来被solr禁用的)
vim solr_home/core1/conf/solrconfig.xml
添加内容
# 复制一份配置文件到core1/conf下
cp src/solr-5.1.0/example/example-DIH/solr/solr/conf/solr-data-config.xml solr_home/core1/conf/data-config.xml
# 修改data-config.xml
vim solr_home/core1/conf/data-config.xml
修改内容
# 修改schema.xml添加field
vim solr_home/core1/conf/schema.xml
添加内容
<field name="username" type="string" indexed="true" stored="true" required="true" />
<field name="usertype" type="int" indexed="true" stored="true" required="true" />
# 复制3个html文件(没复制的话测试时候会报缺这三个文件的错,这里先复制了)
cp src/solr-5.1.0/example/example-DIH/solr/solr/conf/admin-extra.html src/solr-5.1.0/example/example-DIH/solr/solr/conf/admin-extra.menu-bottom.html src/solr-5.1.0/example/example-DIH/solr/solr/conf/admin-extra.menu-top.html solr_home/core1/conf/
students表的last_update_time字段(timestamp类型,默认值CURRENT_TIMESTAMP)作为标识。
给students表添加几条测试数据(演示略)。
# 修改solrconfig.xml,新增个requestHandler
vim solr_home/core1/conf/solrconfig.xml
# 新增并编辑delta-data-config.xml
vim solr_home/core1/conf/delta-data-config.xml
# schema.xml里也要添加last_update_time的field
vim solr_home/core1/conf/schema.xml
添加内容
<field name="last_update_time" type="date" indexed="true" stored="true" />
一、预备工作
本机没有msyql服务先yum装下
yum list installed | grep mysql
若有自带安装的mysql,卸载CentOS系统自带mysql数据库
yum -y remove mysql-libs.x86_64
查看yum库上的mysql版本信息(CentOS系统需要正常连接网络)。
yum list | grep mysql 或 yum -y list mysql*
使用yum安装mysql数据库。
yum -y install mysql-server mysql mysql-devel
启动mysql
service mysqld start
yum装好mysql后root账户是没有密码,给root设置密码(123456)
mysql -uroot -p
显示输入密码时回车进入mysql
mysql > use mysql;
mysql > update user set password=PASSWORD('123456') where user='root';
mysql > flush privileges;
mysql > exit;
再连接mysql
mysql -uroot -p123456
建测试表
CREATE TABLE `students` (
`id` int(5) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(40) DEFAULT NULL,
`usertype` int(1) DEFAULT '1' COMMENT '1=程序,2=产品,3=前端',
`last_update_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
添加点数据
INSERT INTO `students` VALUES ('1', 'wang jing jie', '1', '2015-12-29 16:42:39');
INSERT INTO `students` VALUES ('2', 'linchen', '1', '2015-12-29 16:42:39');
INSERT INTO `students` VALUES ('3', 'wang qi jun', '1', '2015-12-29 16:42:39');
INSERT INTO `students` VALUES ('4', 'deng ya li', '1', '2015-12-29 16:42:39');
INSERT INTO `students` VALUES ('5', 'du ya li', '2', '2015-12-29 16:42:39');
INSERT INTO `students` VALUES ('6', 'guo qiang ', '1', '2015-12-29 16:42:39');
INSERT INTO `students` VALUES ('7', 'gao yuan', '2', '2015-12-29 16:42:39');
INSERT INTO `students` VALUES ('8', 'tan zhi', '3', '2015-12-29 16:42:39');
INSERT INTO `students` VALUES ('9', 'tian ya', '3', '2015-12-29 16:42:39');
INSERT INTO `students` VALUES ('10', 'yang hao ', '4', '2015-12-29 16:42:39');
INSERT INTO `students` VALUES ('11', 'wu zhi zhong', '1', '2015-12-29 16:42:39');
INSERT INTO `students` VALUES ('12', 'wang xian xian', '2', '2015-12-29 16:48:10');
退出mysql
二、全量导入
# 复制导入用jar包
cp src/solr-5.1.0/dist/solr-dataimporthandler-5.1.0.jar tomcat/webapps/solr/WEB-INF/lib/
cp src/solr-5.1.0/dist/solr-dataimporthandler-extras-5.1.0.jar tomcat/webapps/solr/WEB-INF/lib/
cp src/mysql-connector-java-5.1.22-bin.jar tomcat/webapps/solr/WEB-INF/lib/
# 开启导入数据功能(原来被solr禁用的)
vim solr_home/core1/conf/solrconfig.xml
添加内容
<requestHandler name="/dataimport" class="solr.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
cp src/solr-5.1.0/example/example-DIH/solr/solr/conf/solr-data-config.xml solr_home/core1/conf/data-config.xml
# 修改data-config.xml
vim solr_home/core1/conf/data-config.xml
修改内容
<dataConfig>
<dataSource name="solrDB" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test" user="root" password="123456" batchSize="-1" />
<document>
<entity dataSource="solrDB" name="students" query="select * from students">
<field column="id" name="id" />
<field column="username" name="username" />
<field column="usertype" name="usertype" />
</entity>
</document>
</dataConfig>
# 修改schema.xml添加field
vim solr_home/core1/conf/schema.xml
添加内容
<field name="username" type="string" indexed="true" stored="true" required="true" />
<field name="usertype" type="int" indexed="true" stored="true" required="true" />
# 复制3个html文件(没复制的话测试时候会报缺这三个文件的错,这里先复制了)
cp src/solr-5.1.0/example/example-DIH/solr/solr/conf/admin-extra.html src/solr-5.1.0/example/example-DIH/solr/solr/conf/admin-extra.menu-bottom.html src/solr-5.1.0/example/example-DIH/solr/solr/conf/admin-extra.menu-top.html solr_home/core1/conf/
OK后重启tomcat,浏览器里选择core1,选择Dataimport,Command选择full-import,Entity选择students即可进行导入
students表的last_update_time字段(timestamp类型,默认值CURRENT_TIMESTAMP)作为标识。
给students表添加几条测试数据(演示略)。
# 修改solrconfig.xml,新增个requestHandler
vim solr_home/core1/conf/solrconfig.xml
添加内容
<requestHandler name="/deltaimport" class="solr.DataImportHandler">
<lst name="defaults">
<str name="config">delta-data-config.xml</str>
</lst>
</requestHandler>
# 新增并编辑delta-data-config.xml
vim solr_home/core1/conf/delta-data-config.xml
添加内容
<dataConfig>
<dataSource name="solrDB" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test" user="root" password="123456" batchSize="-1" />
<document>
<entity pk="ID" dataSource="solrDB" name="students"
query="select * from students"
deltaImportQuery="select * from students where ID= '${dih.delta.ID}'"
deltaQuery="select ID from students where last_update_time > '${dataimporter.last_index_time}'">
<field column="ID" name="id" />
<field column="username" name="username" />
<field column="usertype" name="usertype" />
<field column="last_update_time" name="last_update_time" />
</entity>
</document>
</dataConfig>
# schema.xml里也要添加last_update_time的field
vim solr_home/core1/conf/schema.xml
添加内容
<field name="last_update_time" type="date" indexed="true" stored="true" />
重启tomcat,进入后台