Other men live to eat, while I eat to live.----蘇格拉底 sql
別人活着爲了享受吃,而我吃是爲了活着。數據庫
咱們活着不能只是爲了吃,嘿嘿,有時候咱們還得寫點代碼=。=|| apache
1.sqljdbc4.jar 我用的SqlServer2008tomcat
Microsoft JDBC Driver 4.0 for SQL Server 支持如下操做系統:app
Linux、Unix、Windows Server 200八、webapp
Windows Vista Service Pack 一、Windows Server 2008 R2 和 Windows 7。sqlserver
2.將solr-5.3.1\dist目錄下的 solr-dataimporthandler-5.3.1.jar複製到apache-tomcat\webapps\solr\WEB-INF\lib目錄下學習
3.將下載的sqljdbc4.jar放到apache-tomcat\webapps\solr\WEB-INF\lib目錄下優化
4.在Solr5中默認dataImport功能是禁用的,須要在D:\solr_home\FixValue\conf\solrconfig.xml中追加配置
data-config.xml表明的是當前路徑用於數據導入的配置文件,我上篇文章有說到將Example中的配置文件複製過來,裏面就包含這個文件
目錄在solr-5.3.1\example\example-DIH\solr\solr\conf\data-config.xml
接下來咱們導入數據的關鍵配置就在 solr-data-config.xml和schema.xml這兩個文件裏面
若是你英文還能夠,能夠到https://wiki.apache.org/solr/去查找你須要的資料
這裏咱們用到的是https://wiki.apache.org/solr/DataImportHandler#Configuration_in_data-config.xml
對於solr-data-config.xml的配置,裏面都有詳細說明,下面我抓幾個重要部分說一下:
dataSource數據庫連接。
entity.dataSource咱們要使用的連接配置名稱。
entity.query用於第一次將全部數據所有導入到Solr中。
entity.deltaQuery用於查找有更改的數據。
entity.deltaImportQuery將deltaQuery中超找到的數據同步到Solr中,就是對Solr中已經存在的索引數據進行增長和修改。
entity.deletedPkQuery 這裏我沒有配置到,具體怎麼使用有待研究。
field.column 對應數據庫中的字段名稱
field.name 對應solr中存儲的索引字段名稱,區分大小寫,後面咱們在使用query查詢時用到
通常在導入索引數據時都要帶上一個惟一的標識字段,用於solr對索引的增刪改查
官方參考文獻(英語):https://wiki.apache.org/solr/SchemaXml
咱們拷貝過來的schema.xml文件中有一些示例數據,咱們先清除掉第一行name="_version_"到<uniqueKey>id</uniqueKey>之間的全部行
name="_version_"是屬於每一個Schema文件中必須包含的字段,記錄索引版本的字段。
field.required標識這個字段是必須字段,若是在之後的更新和同步中這個字段值爲Null則不會被同步到索引中。
field.type標識這個字段是什麼數據類型,是在Schema文件中fieldType節點中配置,須要分詞可使用text_general,可是text_general相對於中文來講很弱,只能一元分詞,後面我會開篇介紹如何加入自定義的分詞器IKanalyzer。
<uniqueKey>id</uniqueKey>是標識哪一個字段是主鍵
至此咱們已經配置好了相關的配置,能夠進入Solr的Web管理頁面導入數據了。http://localhost:9080/manager點擊Reload
而後進入管理頁面打開FixValue的Dataimport頁面
須要引發注意的是這裏的command參數,它有兩個選項
full-import:全量導入,它會覆蓋原有的索引
delta-import:即增量導入,它會在原有索引的基礎上追加
下面的幾個多選框含義解釋以下:
verbose:這個選項設爲true的話,會打印導入的一些中間過程的詳細信息,有利於調試以及瞭解內部操做細節
clean:表示是否在導入數據建立索引以前先清空掉原有的索引
commit:表示是否當即提交索引
optimize:表示是否優化索引
debug: 表示是否開啓調試模式
若是在導入的時候出現問題,能夠去Logging查看錯誤日誌:
執行導入成功以後,咱們能夠去Query界面查看咱們導入的數據:
至此咱們的數據已經成功的導入到了Solr中,那接下咱們怎麼自動將MSSQ中數據的實時更改同步到Solr中呢?下一篇咱們繼續學習