生活随笔
收集整理的這篇文章主要介紹了
Solr4.7从数据库导数据
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
實(shí)際工程應(yīng)用中,從數(shù)據(jù)庫導(dǎo)出數(shù)據(jù)創(chuàng)建索引再常見不過了,現(xiàn)在實(shí)驗一下從數(shù)據(jù)庫導(dǎo)入數(shù)據(jù)創(chuàng)建索引。
?
一、版本說明
Solr版本:4.7.0
數(shù)據(jù)庫:sqlserver2005
?
二、配置步驟
1、? 準(zhǔn)備的jar包
1)? solr-dataimporthandler-extras-4.7.0.jar;在solr發(fā)布包solr-4.7.0\dist里面有
2)? solr-dataimporthandler-4.7.0.jar;在solr發(fā)布包solr-4.7.0\dist里面有
3)? jtds-1.2.2.jar;網(wǎng)上自己找
2、? 修改solr的core配置
要想哪個core從數(shù)據(jù)庫導(dǎo)入數(shù)據(jù)建索引就修改哪個core的配置。
?
2.1修改solrconfig.xml
添加如下這段配置:
[html]?view plaincopy
<requestHandler?name="/dataimport"?class="org.apache.solr.handler.dataimport.DataImportHandler">??? ??????<lst?name="defaults">??? ???????????<str?name="config">data-config.xml</str>??? ??????</lst>??? </requestHandler>??
2.2添加data-config.xml
在solrconfig.xml同一個文件夾內(nèi)建立data-config.xml,其配置如下:
[html]?view plaincopy
<?xml?version="1.0"?encoding="UTF-8"??>?? ?? <dataConfig>??? ??<dataSource?type="JdbcDataSource"??? ??????????????driver="net.sourceforge.jtds.jdbc.Driver"??? ??????????????url="jdbc:jtds:sqlserver://localHost/MyHousekeeper"??? ??????????????user="sa"??? ??????????????password="123456"/>??? ??<document>??? ????????<entity?name="pay"?query="SELECT?payId,payName,payMoney,payDescription,payDatetime?FROM?t_pay">?? ????????<field?column="payId"??????????name="id"?/>?? ????????<field?column="payName"????????name="name"?/>?? ????????<field?column="payMoney"???????name="money"?/>?? ????????<field?column="payDescription"?name="description"?/>?? ????????<field?column="payDatetime"????name="datetime"?/>?? ????????</entity>??? ??</document>??? ?? </dataConfig>??
2.3修改schema.xml
修改這個的目的是讓solr知道有哪些field,是否需要索引,是否需要在索引庫中存儲原文,以及field類型。在上面的sql中有很多種數(shù)據(jù)類型。
payId:整型
payName:字符型
payMoney:浮點(diǎn)數(shù)
payDescription:大文本
payDatetime:日期時間格式
首先在schema.xml中申明field類型,配置在<types> </types>內(nèi)。下面配置的sring類型是不會做分詞處理的,視為完整的一個詞,text_ik是一個中文分詞器ik-analyzer,專門處理中文分詞。
如下:
[html]?view plaincopy
<types>?? ???<fieldtype?name="string"??class="solr.StrField"???????sortMissingLast="true"?omitNorms="true"/>?? ???<fieldType?name="long"????class="solr.TrieLongField"??precisionStep="0"?positionIncrementGap="0"/>?? ???<fieldType?name="float"???class="solr.TrieFloatField"?precisionStep="0"?positionIncrementGap="0"/>?? ???<fieldType?name="date"????class="solr.TrieDateField"??precisionStep="0"?positionIncrementGap="0"/>?? ???<fieldType?name="text_ik"?class="solr.TextField">??? ?????<analyzer?class="org.wltea.analyzer.lucene.IKAnalyzer"/>??? ???</fieldType>??? ??</types>??
然后申明field,field的名字應(yīng)該和sql的查詢結(jié)果集列名一致,如果不一致,需要在data-config.xml中entity標(biāo)簽中用field指明列和field的對應(yīng)關(guān)系。
Field配置如下:
[html]?view plaincopy
<fields>????? ??<field?name="_version_"???????type="long"???????indexed="true"??stored="true"/>?? ??? ??<field?name="id"??????????????type="long"???????indexed="true"??stored="true"??multiValued="false"?required="true"/>?? ??<field?name="name"????????????type="string"?????indexed="true"??stored="true"??multiValued="false"?/>??? ??<field?name="money"???????????type="float"??????indexed="true"??stored="true"??multiValued="false"?/>??? ??<field?name="description"?????type="text_ik"????indexed="true"??stored="true"??multiValued="false"?/>??? ??<field?name="datetime"????????type="date"???????indexed="true"??stored="true"??multiValued="false"?/>??? ?</fields>?? 其中如下field是必須的,用于標(biāo)記版本信息,由solr內(nèi)部自己維護(hù)。
[html]?view plaincopy
<field?name="_version_"???????type="long"???????indexed="true"??stored="true"/>?? 三、導(dǎo)入測試
進(jìn)入solr管理界面,command選擇full-import全部導(dǎo)入;entity需要導(dǎo)入的實(shí)體,也就是配置的哪個sql,點(diǎn)擊execute執(zhí)行導(dǎo)入,如果數(shù)據(jù)很多的話需要導(dǎo)一段時間,不時的點(diǎn)一下refresh status刷新一下,看看導(dǎo)入是否完成,導(dǎo)入完成后會告訴你導(dǎo)入了多少數(shù)據(jù),用了多少時間。如下圖
做個查詢測試,query,
q,description:米;查詢description這個field名的米相關(guān)數(shù)據(jù)
wt,json;查詢結(jié)果返回格式,默認(rèn)json
execute query,執(zhí)行查詢,看到返回的json格式的查詢結(jié)果了。
參考文獻(xiàn):
1)??http://www.chepoo.com/solr4-database-import-create-index.html
2)??http://blog.csdn.net/bruce128/article/details/17796705
轉(zhuǎn)載于:https://www.cnblogs.com/duyinqiang/p/5696729.html
總結(jié)
以上是生活随笔為你收集整理的Solr4.7从数据库导数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。