??Solr是一個高性能笋鄙,采用Java5開發(fā),基于Lucene的全文搜索服務(wù)器怪瓶。同時對其進(jìn)行了擴(kuò)展萧落,提供了比Lucene更為豐富的查詢語言,同時實(shí)現(xiàn)了可配置洗贰、可擴(kuò)展并對查詢性能進(jìn)行了優(yōu)化找岖,并且提供了一個完善的功能管理界面,是一款非常優(yōu)秀的全文搜索引擎敛滋。
1.下載solr
官網(wǎng):http://lucene.apache.org/solr/
2.目錄結(jié)構(gòu)(版本:6.3.0)
3.啟動solr
solr默認(rèn)使用jetty部署许布,也可以使用tomcat部署,本次采用默認(rèn)jetty部署绎晃,進(jìn)入solr目錄蜜唾,輸入:bin/solr start命令,出現(xiàn)Happy searching!字符證明啟動成功箕昭,默認(rèn)端口號8983
4.訪問solr
瀏覽器訪問本地solr地址:http://localhost:8983/solr/#/
5.新增配置文件
在server/solr目錄下灵妨,有一個README.txt的文件,其中說明了如何建立solr core落竹。最簡單的建立是直接復(fù)制solr中為我們提供好的例子,打開server/solr/configsets目錄會發(fā)現(xiàn)里面已經(jīng)有三個例子货抄,因?yàn)槲覀兪且獜臄?shù)據(jù)庫導(dǎo)入數(shù)據(jù)述召,所以復(fù)制 “data_driven_schema_configs” 這個例子并改名為 “case_task”。
6.導(dǎo)入中文分詞工具IK?Analyzer
下載地址:http://download.csdn.net/detail/linzhiqiang0316/9537326
IK分詞包內(nèi)容:
7.整合中文分詞工具IK?Analyzer
將ik-analyzer-solr5-5.x.jar這個jar包放入solr項(xiàng)目下的dist目錄下面蟹地,將IKAnalyzer.cfg.xml积暖,mydict.dic(搜狗的擴(kuò)展詞庫),stopword.dic放在solr項(xiàng)目下的server/resources目錄下面
8.導(dǎo)入需要的jar包
為了導(dǎo)入數(shù)據(jù)和鏈接mysql怪与,我們還需要導(dǎo)入兩個重要的jar包夺刑。由于mysql的jar包并沒有在項(xiàng)目中,我是復(fù)制了一份放到了dist目錄下面了。另外兩個需要的jar包就是dist目錄下帶有“dataimport”標(biāo)識的jar包遍愿。
然后打開myCollections/conf/solrconfig.xml存淫,引用上面提到的jar包和中文分詞工具jar包如下。
9.數(shù)據(jù)庫字段
10.添加requestHandler
繼續(xù)修改case_task/conf/solrconfig.xml沼填,搜索? ,然后在該行之上添加如下代碼桅咆。
data-config.xml
11.建立連接配置文件
在case_task/conf目錄下新建data-config.xml, 內(nèi)容如下。
```
deltaImportQuery="select * from case_task where id='${dih.delta.id}'"
deltaQuery="select id from case_task where last_modify_time> '${dataimporter.last_index_time}'">
```
說明:
dataSource是數(shù)據(jù)庫數(shù)據(jù)源坞笙。Entity就是一張表對應(yīng)的實(shí)體岩饼,pk是主鍵,query是查詢語句薛夜。Field對應(yīng)一個字段籍茧,column是數(shù)據(jù)庫里的column名,后面的name屬性對應(yīng)著Solr的Filed的名字梯澜。其中solrdata是數(shù)據(jù)庫名寞冯,case_task是表名。
其中deltaQuery是增量索引腊徙,原理是從數(shù)據(jù)庫中根據(jù)deltaQuery指定的SQL語句查詢出所有需要增量導(dǎo)入的數(shù)據(jù)的ID號简十。然后根據(jù)deltaImportQuery指定的SQL語句返回所有這些ID的數(shù)據(jù),即為這次增量導(dǎo)入所要處理的數(shù)據(jù)撬腾。核心思想是:通過內(nèi)置變量“${dih.delta.id}”和 “${dataimporter.last_index_time}”來記錄本次要索引的id和最近一次索引的時間螟蝙。
12.managed-schema配置field信息
搜索?
添加中文分詞IK配置信息:
13.添加我們剛剛建立的core
(1).點(diǎn)擊Core Admin,配置我們建立的solr Core的信息民傻,如下所示:
(2).測試索引是否成功
索引成功
(3).監(jiān)測查詢成功
查詢成功
(4).檢測中文分詞
檢測成功
14.其他操作
(1).刪除所有索引:
(2).添加所有索引:
http://localhost:8983/solr/case_task/dataimport?command=full-import&clean=false&commit=true
(3).新增索引:
http://localhost:8983/solr/case_task/dataimport?command=delta-import&clean=false&commit=true