Solr导入MySQL数据之dataimport-handler

  Solr不借助手动JSolr编程情况下也可以将Mysql的数据导入到Solr中。实现方式是安装dataimport-Handler从关系数据库将数据导入到索引库。

1、向SolrCore中加入jar包
  在SolrCore目录中创建lib目录,将dataimportHandler和mysql数据库驱动的jar拷贝至lib下(dataimportHandler在solr安装目录的dist下)

1 mkdir /opt/solrHome/collection1/lib
2 cp /opt/solr-4.10.3/dist/solr-dataimporthandler-* /opt/solrHome/collection1/lib
3 cp /opt/mysql-connector-java-5.1.34.jar /opt/solrHome/collection1/lib

2、修改solrconfig.xml,添加requestHandler

1 vim /opt/solrHome/collection1/conf/solrconfig.xml
1 <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
2     <lst name="defaults">
3     <str name="config">data-config.xml</str>
4 </lst>
5 </requestHandler>

3、编辑data-config.xml文件,存放在SolrCore的conf目录

1 vim /opt/solrHome/collection1/conf/data-config.xml

  <field column="id" name="id"/>必须有一个id域,这里使用Solr默认的id域,域值是从关系数据库查询的pid列值。下边以name、description等Field都是在schema.xml中定义好的商品信息Field。

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <dataConfig>
 3     <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/lucene" user="root" password="root"/>
 4     <document>
 5         <entity name="product" query="SELECT id,db_name,db_price,db_description FROM products ">
 6             <field column="id" name="id"/>
 7             <field column="db_name" name="name"/>
 8             <field column="db_price" name="price"/>
 9             <field column="db_description" name="description"/>
10         </entity>
11     </document>
12 </dataConfig>

4、重启Tomcat,进入管理界面--》SolrCore--》dataimport下执行导入,可见导入数据条数

需要注意的是导入数据点击Execute后程序不会自动停止导入,需要手动点击停止。

MySQL数据库中的数据:

Solr索引库中的数据:

转载于:https://www.cnblogs.com/guanghe/p/10490491.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值