Solr與Mysql數(shù)據(jù)庫(kù)的集成,實(shí)現(xiàn)全量索引、增量索引的創(chuàng)建。?
基本原理很簡(jiǎn)單:在Solr項(xiàng)目中注冊(cè)solr的DataImportHandler并配置Mysql數(shù)據(jù)源以及數(shù)據(jù)查詢(xún)sql語(yǔ)句。當(dāng)我們通過(guò)Solr后臺(tái)控制頁(yè)面或者直接訪問(wèn)某個(gè)地址(后面給出),Solr就會(huì)調(diào)用DataImportHandler,連接數(shù)據(jù)庫(kù),根據(jù)sql語(yǔ)句查詢(xún)數(shù)據(jù),創(chuàng)建索引。?
示例solr版本:solr4.3.1?
約定Solr的安裝目錄,如E:\environment\solr-4.3.1為solr-home。?
1. 拷貝jar包
?
將DataImportHandler所在的jar包和mysql的數(shù)據(jù)庫(kù)驅(qū)動(dòng)包Copy到solr-home/dist目錄下。默認(rèn)情況下該目錄下已存在DataImportHandler所需的兩個(gè)jar包。該Solr版本對(duì)應(yīng)的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的同級(jí)目錄下創(chuàng)建data-config.xml文件,配置數(shù)據(jù)庫(kù)連接和Solr與mysql數(shù)據(jù)的對(duì)應(yīng)關(guān)系和查詢(xún)語(yǔ)句。
?
- < 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。
?
批量導(dǎo)入(full-import):?
http://<host>:<port>/solr/dataimport?command=full-import&commit=y?
????
增量導(dǎo)入(delta-import):?
http://<host>:<port>/solr/dataimport?command=delta-import&commit=y?
????
導(dǎo)入狀態(tài)查詢(xún)(status):?
http://<host>:<port>/solr/dataimport?
????
重新裝載配置文件(reload-config):?
http://<host>:<port>/solr/dataimport?command=reload-config?
????
終止導(dǎo)入(abort):?
http://<host>:<port>/solr/dataimport?command=abort
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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