.Net程序員 Solr-5.3之旅 (三)Solr 從MSSQ導入索引數據

引言

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

data-config.xml

接下來咱們導入數據的關鍵配置就在 solr-data-config.xmlschema.xml這兩個文件裏面

1.solr-data-config.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對索引的增刪改查

schema.xml

官方參考文獻(英語):https://wiki.apache.org/solr/SchemaXml

咱們拷貝過來的schema.xml文件中有一些示例數據,咱們先清除掉第一行name="_version_"到<uniqueKey>id</uniqueKey>之間的全部行

而後加入咱們對FixValue表的字段定義

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中呢?下一篇咱們繼續學習

附件下載

solr從MssQ導入數據相關配置.rar

相關文章
相關標籤/搜索