如須要使用到Solr中的dataimporthandler增量導入功能,則還須要引入兩個所依賴的jar包,在上一篇隨筆中所提到的下載的Solr項目文件solr-4.10.3\dist目錄下能夠找到所依賴的兩個jar包,即java
將這兩個jar包複製到咱們本地Solr服務器下的WEB-INF\lib目錄下,同時需在索引庫中的conf目錄下,添加data-config.xml配置文件數據庫
,data-config.xml則是用來配置數據源,dataimport.properties則是記錄生成索引庫的時間,該文件會在索引庫數據建立完畢後,自動生成。apache
完成以上兩步後,還有很是重要的一步就是,將dataimport-handler處理器與data-config.xml相結合的配置
在索引庫中的conf目錄下存有一個名爲solrconfig.xml的配置文件,須要在該配置文件中添加如下配置文件服務器
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst> </requestHandler>
從而在Solr可視化管理頁面中的Dataimport菜單中能夠看到以下效果oracle
接下來就是對data-config.xml文件與相匹配的schema.xml進行相應的配置,才能最終實現數據源的導入url
data-config.xml
<?xml version="1.0" encoding="UTF-8" ?> <dataConfig> <dataSource driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@192.168.10.32:2016:sxlib" user="TT" password="TT"/> <document> <entity name="CIP_Book" transformer="ClobTransformer" pk="GID" query="select cb.gid gid, cb.gid bibGid, decode(cb.bib_name, null, '未知', regexp_replace(cb.bib_name, '[,|,|\|| | |\(|\)|\.|\[|\]|\+|-|!|\{|\}|^|~|\#|\?|:|;|&|]', '')) bibName, decode(cb.author, null, '未知', regexp_replace(cb.author, '[,|,|\|| | |\(|\)|\.|\[|\]|\+|-|!|\{|\}|^|~|\#|\?|:|;|&|]', '')) author, decode(cb.pub_name, null, '未知', cb.pub_name) pubName, ct.cre_date updatetime from cip_bookinfo cb join cip_bookdetail ct on cb.gid = ct.bib_gid" > <field column="gid" name="gid"/> <field column="bibGid" name="bibGid"/> <field column="bibName" name="bibName"/> <field column="author" name="author"/> <field column="updatetime" name="updateTime"/> </entity> </document> </dataConfig>
在schema.xml中,Solr已經內置了不少field,可是爲了符合開發須要,須要自定義符合自身需求的field,如在data-config.xml中,根據數據所查詢出的書名、做者、出版社三個字段,那麼在schema.xml則定義三個與之匹配的三個field,這樣數據源的數據才能最終交予Solr進行管理spa
<field name="bibName" type="text_ik" indexed="true" stored="true"/> <field name="author" type="text_ik" indexed="true" stored="true"/> <field name="pubName" type="text_ik" indexed="true" stored="true"/>
另外須要注意的是,根據數據源數據庫的類型,導入對應的數據庫依賴包。code
在Dataimport菜單頁中點擊Exceute,則會根據所配置好的數據源,實現數據導入regexp
數據導入完畢後,經過Query菜單頁可實現對數據的查詢功能orm