Solr與Mysql數據庫的集成,實現全量索引、增量索引的創建。?
基本原理很簡單:在Solr項目中注冊solr的DataImportHandler并配置Mysql數據源以及數據查詢sql語句。當我們通過Solr后臺控制頁面或者直接訪問某個地址(后面給出),Solr就會調用DataImportHandler,連接數據庫,根據sql語句查詢數據,創建索引。?
示例solr版本:solr4.3.1?
約定Solr的安裝目錄,如E:\environment\solr-4.3.1為solr-home。?
1. 拷貝jar包
?
將DataImportHandler所在的jar包和mysql的數據庫驅動包Copy到solr-home/dist目錄下。默認情況下該目錄下已存在DataImportHandler所需的兩個jar包。該Solr版本對應的jar包名字是:solr-dataimporthandler-4.3.1.jar、solr-dataimporthandler-extras-4.3.1.jar?
2. 修改solr-home\example\solr\collection1\conf\solrconfig.xml文件
?
a. 增加所需jar包引用配置:?
- < lib? dir= "../../../dist/"? regex= "solr-dataimporthandler-.*\.jar"? />??
- < lib? dir= "../../../dist/"? regex= "mysql-connector-java-.*\.jar"? />??
b. 增加resultHandler配置?
- < requestHandler? name= "/dataimport"?????
- ???????? class= "org.apache.solr.handler.dataimport.DataImportHandler" >????????
- ???????? < lst? name= "defaults" >????????
- ???????????? < str? name= "config" >data-config.xml </ str >????????
- ???????? </ lst >????????
- </ requestHandler >??
3.? 在solrconfig.xml的同級目錄下創建data-config.xml文件,配置數據庫連接和Solr與mysql數據的對應關系和查詢語句。
?
- < dataConfig >????
- ?? < dataSource? type= "JdbcDataSource"? driver= "com.mysql.jdbc.Driver"?????
- ??? url= "jdbc:mysql://127.0.0.1/dbname"? user= "root"? password= "root" />????
- ??? < document? name= "search_object" >???
- ?????? < entity? name= "talent"???
- ???? query="select?id,?gender,?qq,?msn,?anualSalary,?updateTime,?addUserId??
- ??????????????from?talent" >????
- ???????? < field? column= "anualSalary"? name= "salary" />????
- ???????? < field? column= "addUserId"? name= "userId" />????
- ?????
- ???????? <!--Talent?Names-->??
- ???????? < entity? name= "talent_name"? query= "select?value?from?talentname?where?talentId='${talent.id}'" >????
- ?????????? < field? column= "value"? name= "name" />????
- ???????? </ entity >????
- ?????? </ entity >????
- ??? </ document >????
- </ dataConfig >???
4. 重啟Solr。
?
批量導入(full-import):?
http://<host>:<port>/solr/dataimport?command=full-import&commit=y?
????
增量導入(delta-import):?
http://<host>:<port>/solr/dataimport?command=delta-import&commit=y?
????
導入狀態查詢(status):?
http://<host>:<port>/solr/dataimport?
????
重新裝載配置文件(reload-config):?
http://<host>:<port>/solr/dataimport?command=reload-config?
????
終止導入(abort):?
http://<host>:<port>/solr/dataimport?command=abort
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
