首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Solr 4.9 同步 MySQL 資料完整部署指南:從安裝到全量匯入

     編輯:MySQL 綜合教學

Solr 4.9 同步 MySQL 資料完整部署指南:從安裝到全量匯入

Apache Solr 是基於 Lucene 的企業級全文搜尋伺服器,提供豐富查詢語言、分散式索引、管理介面。本文記錄在 Solr 4.9 環境下,透過 DataImportHandler 實現 MySQL 資料全量同步的完整步驟,含 JDK、Solr 安裝、驅動配置、Schema 定義、資料源設定與匯入驗證。

一、環境準備

1.1 安裝 JDK 1.7+

Solr 4.9 需 Java 7 或以上版本,確認 java -version 輸出符合需求。

1.2 安裝並啟動 Solr

# 解壓後進入 example 目錄
cd SOLR_HOME/example
java -jar start.jar

預設埠 8983,瀏覽器訪問 https://localhost:8983/solr 見到管理介面即啟動成功。

Solr 啟動日誌 Solr 啟動成功畫面 Solr 管理介面

二、配置 DataImportHandler 匯入 MySQL

2.1 放置 MySQL JDBC 驅動

下載 mysql-connector-java-x.x.x.jar 放入:

{SOLR_HOME}/contrib/dataimporthandler/lib/

JDBC 驅動放置位置

2.2 修改 solrconfig.xml 引用必要 JAR

檔案位置:{solr_home}/example/solr/collection1/conf/solrconfig.xml

在 <lib> 區段加入:

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

solrconfig.xml lib 配置

2.3 配置 RequestHandler

在同一檔案加入:

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

RequestHandler 配置

2.4 設計 schema.xml 定義欄位類型

位置同 solrconfig.xml,依資料庫欄位對應定義 <field> 與 <fieldType>。

schema.xml 欄位配置

2.5 建立 data-config.xml 定義資料源與實體映射

放在 conf/ 目錄下:

<dataConfig>
  <dataSource type="JdbcDataSource"
              driver="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost/exercise"
              user="root"
              password=""
              batchSize="-1" />

  <document>
    <entity name="customerinfo"
            query="select customerID, 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>

關鍵參數:

  • batchSize="-1":一次性讀取所有資料,避免記憶體溢出視資料量調整
  • entity name 對應 Solr 文件,query 為 SQL 查詢語句
  • field 映射:column 為資料庫欄位,name 為 Schema 定義欄位

data-config.xml 內容 data-config.xml 完整畫面

三、執行全量匯入

  1. 開啟 Solr Admin UI → Core Selector 選 collection1 → Dataimport
  2. Command 選 full-import
  3. Entity 選 customerinfo
  4. 點擊 Execute

DataImport 介面 執行 full-import

完成後顯示 Indexing completed:

匯入完成提示

四、驗證查詢

切換到 Query 分頁,輸入查詢條件(如 q=*:* 或指定欄位),執行驗證資料已建立索引:

Query 驗證結果

五、進階擴充建議

  • 增量匯入:在 data-config.xml 加入 deltaQuery、deltaImportQuery、parentDeltaQuery,配合 last_index_time 實現定時增量同步
  • 分庫分表:多 entity 並行,或使用 DataImportHandler 多執行緒
  • 生產環境:獨立 SolrCloud 模式、Zookeeper 協調、備份恢復策略
  • 中文分詞:整合 IK Analyzer 或 Ansj 分詞器替換預設英文分析器

完成上述步驟,MySQL 業務資料即可無縫同步至 Solr,賦予系統毫秒級全文搜尋與面向欄位過濾能力。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved