一、Solr簡介
1帆调、Solr是什么
Solr是一個基于Lucene的Java搜索引擎服務器鹿榜。Solr 提供了層面搜索命爬、命中醒目顯示并且支持多種輸出格式(包括 XML/XSLT 和 JSON 格式)。它易于安裝和配置周荐,而且附帶了一個基于 HTTP 的管理界面狭莱。Solr已經(jīng)在眾多大型的網(wǎng)站中使用,較為成熟和穩(wěn)定概作。Solr 包裝并擴展了 Lucene腋妙,所以Solr的基本上沿用了Lucene的相關術語。更重要的是讯榕,Solr 創(chuàng)建的索引與Lucene 搜索引擎庫完全兼容骤素。通過對 Solr 進行適當?shù)呐渲茫承┣闆r下可能需要進行編碼愚屁,Solr 可以閱讀和使用構(gòu)建到其他 Lucene 應用程序中的索引济竹。此外,很多 Lucene 工具(如 Nutch霎槐、 Luke)也可以使用Solr 創(chuàng)建的索引送浊。 總結(jié)一下:solr是一個java搜索引擎服務器(是一套war程序),內(nèi)部集成了Lucene(apache提供的一些對搜索引擎做支持的jar包)丘跌。
2罕袋、Solr能做什么
保存數(shù)據(jù)
建立索引,維護索引
數(shù)據(jù)檢索(全文搜索碍岔,高亮顯示,精確搜索等)
3朵夏、為什么需要Solr
問題:我們已經(jīng)學過Lucene蔼啦,為什么還要學習solr?
答:Lucene是一個工具包,不能單獨運行仰猖,需要導入到java代碼中捏肢。
Solr可以獨立運行在tomcat容器中,通過http協(xié)議饥侵,以接口的方式對外提供服務鸵赫,java代碼只需要專注于業(yè)務的處理就可以。
二躏升、solr 服務器搭建
1.????? 官網(wǎng)下載solr4.9.1的程序安裝包辩棒。
下載地址:http://archive.apache.org/dist/lucene/solr/
2.?????解壓solr的zip包,目錄如下
3.????? 將dist\solr-4.9.1.war文件復制到tomcat的webapps目錄下,并將文件命名為solr.war
4.?????復制solr解壓包下example\lib\ext 下所有的jar 到tomcat 的lib目錄下
5.????? 在計算機本地新建一個文件夾solr_home(當然你可以隨便起名字), 然后復制
solr-4.9.1\example\solr 下的所有文件到 solr_home下
6.????? 啟動tomcat一睁,待tomcat啟動成功后钻弄,關閉tomcat。打開tomcat的webapps目錄者吁。注意窘俺,此時solr的war包以及被解壓成solr文件夾。刪除tomcat 的webapps目錄下的solr的war
包复凳,保留solr文件夾瘤泪。
7.?修改配置文件apache-tomcat-7.0.67\webapps\solr\WEB-INF\web.xml
<env-entry>
<env-entry-name>solr/home</env-entry-name>?
<env-entry-value> F:/solr_home</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
8.????? 訪問solr(http://localhost:端口號/solr/),如出現(xiàn)以下界面則solr部署成功。
三育八、新建數(shù)據(jù)配置?core
1.??????????新建core(solr中把配置的每一個模塊都叫core),在solr_home目錄下对途,拷貝collection1文件夾,并起名為test单鹿。打開test文件夾掀宋,修改core.properties文件,將name修改為test
2.??????????重新啟動tomcat,并訪問solr,如出現(xiàn)以下界面,則表示新建testcore成功仲锄。
3.??????????重新啟動tomcat劲妙,并訪問solr,如出現(xiàn)以下界面,則表示新建testcore成功。
四儒喊、新增數(shù)據(jù)庫配置
到目前為止镣奋,我們已經(jīng)完成了solr的基礎配置,并且創(chuàng)建了test core怀愧,接下來我們需要把數(shù)據(jù)的數(shù)據(jù)和搜索引擎連接起來侨颈,讓搜索引擎可以讀取數(shù)據(jù)庫的數(shù)據(jù)。
1.???????拷貝數(shù)據(jù)庫連接jar包(mysql-connector-java-5.1.18.jar)到tomcat的lib目錄
2.???????以創(chuàng)建testcore的方式新建hotel core
3.???????打開hotel的conf文件夾中的solrconfig.xml文件芯义,在requestHandlername="/select" class="solr.SearchHandler">前面上加上一個dataimport的處理的Handler
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
???????? <str name="config">data-config.xml</str>
</lst>
</requestHandler>
五哈垢、