Solr-5.3.1 dataimport 匯入mysql資料

右介發表於2017-06-05

      最近需要計算製造業領域大詞表每個詞的idf,詞表裡一共九十多萬個詞,語料一共三百七十多萬篇分詞後文獻。最開始嘗試用程式詞表迴圈套語料迴圈得到每個詞的idf,後來又嘗試把語料存入mysql然後建立全文索引再迴圈用sql語句去查每個詞的idf,效率都十分不理想。

      最新的想法是利用solr搜尋引擎的速度來做,所以首先要把mysql的資料匯入solr。

一、開啟Solr服務

1、下載solr-5.3.1.tgz包,解壓之後為solr-5.3.1

2、通過bin/solr start命令開啟solr服務

3、開啟服務之後,預設是開啟8983埠,此時就可以使用localhost:8983/solr/進行訪問了

二、從Mysql資料庫中匯入資料

1、建立core或collection:bin/solr create -c 集合名

2、從mysql官網中下載一個mysql-connector-java-5.1.25.zip壓縮包,解壓出一個mysql-connector-java-5.1.25-bin.jar包,將它分別copy到solr-5.3.1/server/lib和solr-5.3.1/server/solr-webapp/webapp/WEB-INF/lib當中(只copy到第一個路徑應該就可以)

3、將solr-dataimporthandler-5.3.1.jar和solr-dataimporthandler-extras-5.3.1.jar從solr-5.3.1/dist/資料夾下copy到solr-5.3.1/server/solr-webapp/webapp/WEB-INF/lib當中(只copy第一個檔案應該就可以)

4、修改solr-5.3.1/server/solr/集合名/conf/managed-schema檔案為schema.xml 

5、在schema.xml新增field(根據實際情況),如下:

<field name="quanwen" type="text_general" indexed="true" stored="true" required="true" />

6、修改solr-5.3.1/server/solr/collection/conf/下的solrconfig.xml的配置檔案,增加一段新增資料庫資料的xml,如下:

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">   
    <lst name="defaults">   
        <str name="config">data-config.xml</str>   
    </lst>   
</requestHandler>

7、在solr-5.3.1/server/solr/collection/conf/下建立data-config.xml檔案,配置訪問資料庫的使用者名稱、密碼、查詢語句,column對應資料庫中欄位、name對應solr的schema.xml中欄位(根據實際情況),檔案內容如下:  

<dataConfig>
    <dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://IP:3306/庫名" user="賬號" password="密碼"/>
    <document>
        <entity name="item" query="select * from 表名">
            <field column="id" name="id" />
            <field column="quanwen" name="quanwen" />
        </entity>
    </document>
</dataConfig>

8、重啟服務bin/solr restart

9、

相關文章