1. 程式人生 > >[jjzhu學java]之solr4.9同步mysql資料

[jjzhu學java]之solr4.9同步mysql資料

Solr是一個高效能,採用Java5開發,基於Lucene的全文搜尋伺服器。同時對其進行了擴充套件,提供了比Lucene更為豐富的查詢語言,同時實現了可配置、可擴充套件並對查詢效能進行了優化,並且提供了一個完善的功能管理介面,是一款非常優秀的全文搜尋引擎。

       可以將資料庫中的資料匯入到solr中,對於百萬級別的資料可以快速響應查詢。

1、安裝jdk

JDK版本需要1.7以上

2、安裝solr

下載solr壓縮包,解壓安裝包,進入到SOLR_HOME\example目錄下,執行命令java –jar start.jar啟動solr




3、匯入並更新資料相關配置

       Solr提供了將資料庫資料匯入到solr索引庫的功能(dataimport)

3.1、下載資料庫驅動包

       下載mysql的驅動包,並放在{%SOLR_HOME%}contrib\dataimporthandler\lib目錄下


3.2、配置solrconfig.xml

3.2.1、引用相關庫

       solrconfig.xml包含了用於配置自身行為的絕大部分引數,其作用範圍是當前core。位置在檔案目錄該檔案位於{%solr_home%} example\solr\collection1\conf下。

       資料匯入需要引用mysql的驅動包和DataImport所需的包。

       在檔案中新增如下內容:

<libdir="../../../contrib/dataimporthandler/lib"regex=".*\.jar" />

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

      

3.2.2、配置requestHandler

       在solrconfig.xml中加入如下配置:

<requestHandlername="/dataimport"class="org.apache.solr.handler.dataimport.DataImportHandler">

       <lst name="defaults">

         <str name="config">data-config.xml</str>

       </lst>

   </requestHandler>


3.3、配置schema.xml

              Schema.xml可以靈活的配置不同型別的欄位,所在位置與solrconfig.xml同級。

              匯入資料需要配置與資料庫中欄位一致的型別,在配置檔案中


3.3、配置資料來源

       在與solrconfig.xml同級目錄下({%solr_home%}example\solr\collection1\con),建立與3.2.2中配置中同名的資料配置檔案data-config.xml,


並新增如下內容

<dataConfig>

   <!-- driver: 資料庫驅動名

        url:資料庫路徑

        user:資料庫使用者

        password:資料庫密碼

        batchSize:防止在匯入資料過程中記憶體溢位

    -->

  <dataSource type="JdbcDataSource"

             driver="com.mysql.jdbc.Driver"

             url="jdbc:mysql://localhost/exercise"

              user="root"

              password=""

              batchSize="-1"/>

  <document>

   <!--要匯入的表,可以配置多個

       並查詢出要建立索引的欄位

   -->

   <entity name="customerinfo" query="selectcustomerID,customerName,PID,telephone from customerinfo">

      <field column="customerID" name="id"/>

      <field column="customerID" name="customerID"/>

      <field column="customerName"name="customerName"/>

      <field column="PID" name="PID"/>

      <field column="telephone" name="telephone"/>

   </entity>

 </document>

</dataConfig>

4、匯入資料

       訪問solr介面



Command選擇full-import,Entity選擇要匯入的表,再點選Execute便可匯入資料


完成後會提示索引建立完成。

然後在Query介面可以輸入相關查詢條件進行查詢