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索引庫中的數據:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM