solr配置

一般要搜索的信息都是被存儲在數(shù)據(jù)庫里面的夯膀,但是我們不能直接搜數(shù)據(jù)庫哨查,所以只有借助Solr將要搜索的信息在搜索服務器上進行索引,然后在客戶端供客戶使用镊绪。

一、鏈接數(shù)據(jù)庫

1. SQL配置

拿SQL Server 為例洒忧,需要先下載Sql Server的jar包蝴韭,下載地址:

http://msdn.microsoft.com/en-us/data/aa937724.aspx

解壓縮之后將sqljdbc4.jar復制到webapps\solr\WEB-INF\lib下,也就是本例的:

D:\apache-tomcat-7.0.57\webapps\solr\WEB-INF\lib

2. 建立查詢

然后在D:\apache-tomcat-7.0.57\webapps\solr\solr_home\collection1\conf下面新建一個配置文件:data-config.xml

然后在本目錄下編輯配置文件:solrconfig.xml

找到很多個requestHandler節(jié)點熙侍,在最下面增加:

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"><lst name="defaults"><str name="config">D:\apache-tomcat-7.0.57\webapps\solr\solr_home\collection1\conf\data-config.xml</str></lst></requestHandler>

要配置的內(nèi)容就是剛才新建文件的路徑榄鉴。

3. 將初次下載的solr-4.10.2文件夾下的dist, contrib文件夾復制到TomCat根目錄下:

4. 然后再次修改剛才編輯過的solrconfig.xml增加兩個文件夾的配置并修改一些參數(shù):

大約在75行默認有8個路徑,但是路徑不一定全對核行,順著這個配置的路徑去找文件夾牢硅,根據(jù)查找的層數(shù)修改這個路徑配置蹬耘,另增加一個新的配置芝雪,全文如下:

<lib dir="D:\apache-tomcat\contrib\extraction\lib" regex=".*\.jar" />

? <lib dir="D:\apache-tomcat\dist\" regex="solr-cell-\d.*\.jar" />

? <lib dir="D:\apache-tomcat\contrib\clustering\lib\" regex=".*\.jar" />

? <lib dir="D:\apache-tomcat\dist\" regex="solr-clustering-\d.*\.jar" />

? <lib dir="D:\apache-tomcat\contrib\langid\lib\" regex=".*\.jar" />

? <lib dir="D:\apache-tomcat\dist\" regex="solr-langid-\d.*\.jar" />

? <lib dir="D:\apache-tomcat\contrib\velocity\lib" regex=".*\.jar" />

? <lib dir="D:\apache-tomcat\dist\" regex="solr-velocity-\d.*\.jar" />

? <lib dir="D:\apache-tomcat\dist\" regex="solr-dataimporthandler-\d.*\.jar" />

這個配置是根據(jù)本機推導出來的,大家根據(jù)自己的實際情況去修改综苔。

5. 將dist文件夾下的

復制到webapps\solr\WEB-INF\lib下惩系。

6. 然后編輯

D:\apache-tomcat-7.0.57\webapps\solr\solr_home\collection1\conf\data-confing.xml文件,以本機MyBookShop數(shù)據(jù)庫的Books表為例

配置如下:

<?xml version="1.0" encoding="UTF8"?><dataConfig><dataSource driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://localhost:1433;DatabaseName=MyBookShop" user="sa" password="111"/><document name="Info" pk="id"><entity name="zpxx"? transformer="ClobTransformer" pk="id"? ? ? ? ? ? ? ? query="SELECT? [ID],[Title] as name? FROM [MyBookShop].[dbo].[Books]"? ? ?

? ? ? ? ? ? ? ? deltaImportQuery="SELECT? [Id],[Title] as name? FROM [MyBookShop].[dbo].[Books] where [PublishDate] > '${dataimporter.last_index_time}'"?

? ? ? ? ? ? ? ? deltaQuery="SELECT? id FROM [MyBookShop].[dbo].[Books] where [PublishDate] > '${dataimporter.last_index_time}'"><field column="id"? ? ? name="id"/><field column="name"? ? ? name="name"/></entity></document></dataConfig>

此配置千萬注意如筛。

上述配置說明如下:

???? query是獲取全部數(shù)據(jù)的SQL(solr從sql中獲取那些數(shù)據(jù))堡牡,多列

???? deltaImportQuery是獲取增量數(shù)據(jù)時使用的SQL(數(shù)據(jù)庫新增數(shù)據(jù)追加到solr的數(shù)據(jù)),多列

???? deltaQuery是獲取pk的SQL(數(shù)據(jù)庫新增數(shù)據(jù)是,追加到solr的數(shù)據(jù)時的條件,根據(jù)id ,條件是最后一次獲取的時間,${dataimporter.last_index_time,最后獲取的時間})杨刨,一列

如需配置多列晤柄,步驟如:

1.先配置數(shù)據(jù)庫查詢信息data config:

<entity?name="zpxx"? transformer="ClobTransformer" pk="id"

?????????query="SELECT [ProductID] as ID,[ShopProductTitle] as title1,[SecondTitle] as title2,[ShopProductDescription] as descr? FROM [dbo].[ShopProduct]"??????

?????????deltaImportQuery="SELECT [ProductID] as ID,[ShopProductTitle] as title1,[SecondTitle] as title2,[ShopProductDescription] as descr? FROM [dbo].[ShopProduct] where [PublishDate] > '${dataimporter.last_index_time}'"??

?????????deltaQuery="SELECT [ProductID] as ID FROM [dbo].[ShopProduct] where [PublishDate] > '${dataimporter.last_index_time}'">???????????

????????<field?column="id"????? name="id"????? />

<field?column="title1"????? name="title1"????? />

<field?column="title2"????? name="title2"????? />

????????<field?column="descr"????? name="descr"????? />

?</entity>

?2. 配置schema信息(約120多行處):

<field?name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />

<field?name="sku" type="text_en_splitting_tight" indexed="true" stored="true" omitNorms="true"/>

<field?name="title1" type="text_ik" indexed="true" stored="true"/>

<field?name="title2" type="text_ik" indexed="true" stored="true"/>

<field?name="descr" type="text_ik" indexed="true" stored="true"/>

<field?name="cat" type="string" indexed="true" stored="true" multiValued="true"/>

?這樣查處的結果就如:

"docs": [

??{

????"title1": "櫻桃",

????"title2": "櫻桃櫻桃",

????"id": "1004",

????"descr": "<img?alt=\"\" src=\"9f531.jpg\"><img?alt=\"\" src=\"5.jpg\">",

????"_version_": 1503960451691577300

??},


保證SQL SERVER配置了外網(wǎng)訪問即可。

配置到此基本結束妖胀。

二芥颈、建立索引

啟動Solr惠勒,刪除全部索引數(shù)據(jù):

http://localhost:8080/solr/update/?stream.body=<delete><query>*:*</query></delete>&stream.contentType=text/xml;charset=utf-8&commit=true

停掉Solr,檢查下是不是清空了:

開始創(chuàng)建新的索引爬坑,瀏覽器執(zhí)行方式:

終止跑索引:http://localhost:8080/solr/collection1/dataimport?command=abort

開始索引:http://localhost:8080/solr/collection1/dataimport?command=full-import

增量索引 :http://localhost:8080/solr/collection1/dataimport?command=delta-import

建議學習時使用UI的方式進行更新纠屋,能看清運行過程:

需要等執(zhí)行結束,可以點擊【Refrush status】看結果:

Indexing completed. Added/Updated: 1076 documents. Deleted 0 documents. (Duration: 03s)

表示結束盾计。

然后點擊左邊的查詢檢驗索引結果:

出現(xiàn)查詢結果表示創(chuàng)建成功售担。

三、更新索引署辉、增加索引族铆、刪除索引

1. 更新數(shù)據(jù):

我們先來搜索一個關鍵字“土豆”,這里全是計算機圖書哭尝,不應該有土豆的骑素。

然后將其中一個書籍的標題更新為“論土豆的栽培技術”

不更新索引是搜不到的。

執(zhí)行增量更新:

http://localhost:8080/solr/dataimport?command=delta-import&clean=false&commit=true

然后去查詢:

已經(jīng)可以查詢得到了刚夺。

2. 新增一個數(shù)據(jù):“論蘋果的藝術”


insert into [MyBookShop].[dbo].[Books]

(

[Title]

,[Author]

,[PublishDate]

,[WordsCount]

,[UnitPrice]

,[ContentDescription]

,[AurhorDescription]

,[EditorComment]

,[TOC]

)

SELECT '論蘋果的藝術'

,[Author]

,[PublishDate]

,[WordsCount]

,[UnitPrice]

,[ContentDescription]

,[AurhorDescription]

,[EditorComment]

,[TOC]

FROM [MyBookShop].[dbo].[Books] where id=4942


新增結果如下:?

然后執(zhí)行增量索引:

http://localhost:8080/solr/dataimport?command=delta-import&clean=false&commit=true

再查詢:

發(fā)現(xiàn)新結果被查詢出來了献丑。

3. 刪除數(shù)據(jù)

? 將蘋果這條數(shù)據(jù)刪除掉,仍然能夠查詢出來侠姑,執(zhí)行單條索引刪除:

7168&stream.contentType=text/xml;charset=utf-8&commit=true">http://localhost:8080/solr/update/?stream.body=<delete><id>7168</id></delete>&stream.contentType=text/xml;charset=utf-8&commit=true

再次查詢就查不到了:


數(shù)據(jù)庫下載

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末创橄,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子莽红,更是在濱河造成了極大的恐慌妥畏,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件安吁,死亡現(xiàn)場離奇詭異醉蚁,居然都是意外死亡,警方通過查閱死者的電腦和手機鬼店,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門网棍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人妇智,你說我怎么就攤上這事滥玷。” “怎么了巍棱?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵惑畴,是天一觀的道長。 經(jīng)常有香客問我航徙,道長如贷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮杠袱,結果婚禮上泻红,老公的妹妹穿的比我還像新娘。我一直安慰自己霞掺,他們只是感情好谊路,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著菩彬,像睡著了一般缠劝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上骗灶,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天惨恭,我揣著相機與錄音,去河邊找鬼耙旦。 笑死脱羡,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的免都。 我是一名探鬼主播锉罐,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼绕娘!你這毒婦竟也來了脓规?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤险领,失蹤者是張志新(化名)和其女友劉穎侨舆,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绢陌,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡挨下,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了脐湾。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片臭笆。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖沥割,靈堂內(nèi)的尸體忽然破棺而出耗啦,到底是詐尸還是另有隱情凿菩,我是刑警寧澤机杜,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站衅谷,受9級特大地震影響椒拗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一蚀苛、第九天 我趴在偏房一處隱蔽的房頂上張望在验。 院中可真熱鬧,春花似錦堵未、人聲如沸腋舌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽块饺。三九已至,卻和暖如春雌芽,著一層夾襖步出監(jiān)牢的瞬間授艰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工世落, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留淮腾,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓屉佳,卻偏偏與公主長得像谷朝,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子武花,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容