1. 程式人生 > >Solr:將資料庫匯入到索引庫<五>

Solr:將資料庫匯入到索引庫<五>

將資料庫匯入到索引庫

準備:

    • 資料表:我的測試表:testsolr
    • mysql驅動

配置資料匯入功能:

    • 在solrconfig.xml中配置requestHandler
    • 配置資料匯入外掛
    • 在索引庫中建立lib資料夾
    • 在solrconfig.xml中引入

1.1 自定義索引庫:testsolr 

參考 solr的第二篇,自定義索引庫  

刪除複製過來的索引庫中的data資料夾:沒有data資料夾 會自動建立

schema.xml 部分配置:(參考solr:自定義索引庫的中的:修改schema.xml檔案)

  
   <field name="id" type="string"
indexed="true" stored="true" required="true" multiValued="false" /> <field name="product_name" type="text_ik" indexed="true" stored="true" /> <field name="product_catalog" type="int" indexed="true" stored="true" /> <field name="product_catalog_name" type="text_ik" indexed="true"
stored="true" /> <field name="product_price" type="double" indexed="true" stored="true" /> <field name="product_description" type="text_ik" indexed="true" stored="false" /> <field name="product_picture" type="text_ik" indexed="true" stored="true" /> <uniqueKey>id</
uniqueKey> <field name="product_keywords" type="text_ik" indexed="true" stored="true" multiValued="true"/> <copyField source="product_name" dest="product_keywords"/> <copyField source="product_catalog_name" dest="product_keywords"/> <copyField source="product_description" dest="product_keywords"/> <fieldType name="text_ik" class="solr.TextField"> <analyzer type="index" class="org.wltea.analyzer.lucene.IKAnalyzer" /> <analyzer type="query" class="org.wltea.analyzer.lucene.IKAnalyzer" /> </fieldType>

1.2  新增dataimporthandler jar包---額外功能—外掛

  在索引庫中建立lib 資料夾,存放 dataimporthandler  jar包

1.3 在solrconfig.xml中引入jar

<lib dir="../lib/" regex="solr-dataimporthandler-\d.*\.jar" />

1.4 在solrconfig.xml檔案   配置requestHandler 

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
     <lst name="defaults">
       <str name="config">db-data-config.xml</str>
     </lst>
  </requestHandler>
db-data-config.xml是連線資料庫的配置檔案

1.5 conf目錄下新增db-data-config.xml

<?xml version="1.0" encoding="UTF-8" ?>  
<dataConfig>   
<dataSource type="JdbcDataSource"   
          driver="com.mysql.jdbc.Driver"   
          url="jdbc:mysql://127.0.0.1:3306/test01"   
          user="root"   
          password="root"/>   
<document>   
    <entity name="product" query="SELECT pid,name,catalog,catalog_name,price,description,picture FROM testsolr">
         <field column="pid" name="id"/> 
         <field column="name" name="product_name"/> 
         <field column="catalog" name="product_catalog"/>
         <field column="catalog_name" name="product_catalog_name"/> 
         <field column="price" name="product_price"/> 
         <field column="description" name="product_description"/> 
         <field column="picture" name="product_picture"/> 
    </entity>   
</document>   
</dataConfig>
field :
  • column 資料庫中的列
  • name 索引庫中的對應的名字

1.6 新增mysql驅動包到solr中

1.7 匯入資料