Solr是一個高性能,採用Java5開發,基於Lucene的全文搜索服務器。同時對其進行了擴展,提供了比Lucene更爲豐富的查詢語言,同時實現了可配置、可擴展並對查詢性能進行了優化,而且提供了一個完善的功能管理界面,是一款很是優秀的全文搜索引擎。html
Solr最初由CNET Networks開發,2006 年初,Apache Software Foundation 在Lucene頂級項目的支持下獲得了Solr。Solr於2007年1月醞釀成熟,在整個項目孵化期間,Solr穩步地積累各類特性並吸引了一個穩定的用戶羣體、貢獻者和提交人。Solr 如今是 Lucene(Apache 的基於Java的全文本搜索引擎庫)的一個子項目。java
Solr是一個擁有像WebService同樣接口的獨立運行的搜索服務器。你將可以經過HTTP協議以XML格式將文檔放入搜索服務器(這個過程叫作索引),你可以經過HTTP協議的GET來查詢搜索服務器而且獲得XML格式的結果。linux
Solr的特性包括:web
Solr 程序包的目錄結構:apache
Lucene是apache軟件基金會4 jakarta項目組的一個子項目,是一個開放源代碼的全文檢索引擎工具包,即它不是一個完整的全文檢索引擎,而是一個全文檢索引擎的架構,提供了完整的查詢引擎和索引引擎,部分文本分析引擎(英文與德文兩種西方語言)。Lucene的目的是爲軟件開發人員提供一個簡單易用的工具包,以方便的在目標系統中實現全文檢索的功能,或者是以此爲基礎創建起完整的全文檢索引擎瀏覽器
Solr是一個基於Lucene java庫的企業級搜索服務器,包含XML/HTTP,JSON API,高亮查詢結果,faceted search,緩存,複製還有一個WEB管理界面。Solr運行在Servlet容器中。因此Solr和Lucene的本質區別有如下三點:搜索服務器,企業級和管理。Lucene本質上是搜索庫,不是獨立的應用程序,而Solr是。Lucene專一於搜索底層的建設,而Solr專一於企業應用。Lucene不負責支撐搜索服務所必須的管理,而Solr負責。因此說,一句話歸納Solr:Solr是Lucene面向企業搜索應用的擴展。緩存
1)Solr使用Lucene而且擴展了它 tomcat
2)Schema(模式) 性能優化
3)查詢 服務器
4)核心
5)緩存
6)複製
7)管理接口
本次安裝Nutch的環境介紹:
下面是軟件的下載地址:
備註:在"Nutch搜索引擎_第1期_Nutch簡介及安裝",咱們已經安裝了JDK和Tomcat,這裏咱們只須要安裝Solr,並與以前安裝的Nutch相結合。
第一步:把咱們下載的Solr安裝上傳到"TSlave.Hadoop"機器上。
第二步:用下面命令進行解壓,並從新命名爲"solr"。
unzip apache-solr-3.5.0.zip
mv apache-solr-3.5.0 solr
知識點:
功能說明:壓縮文件。
語 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工做目錄>][-ll][-n <字尾字符串>][-t <日期時間>][-<壓縮效率>][壓縮文件][文件...][-i <範本樣式>][-x <範本樣式>]
補充說明:zip是個使用普遍的壓縮程序,文件經它壓縮後會另外產生具備".zip"擴展名的壓縮文件。
功能說明:解壓縮zip文件
語 法:unzip [-cflptuvz][-agCjLMnoqsVX][-P <密碼>][.zip文件][文件][-d <目錄>][-x <文件>] 或 unzip [-Z]
補充說明:unzip爲.zip壓縮文件的解壓縮程序。
zip命令能夠用來將文件壓縮成爲經常使用的zip格式。unzip命令則用來解壓縮zip文件。
1. 我想把一個文件abc.txt和一個目錄dir1壓縮成爲yasuo.zip:
# zip -r yasuo.zip abc.txt dir1
2.我下載了一個yasuo.zip文件,想解壓縮:
# unzip yasuo.zip
3.我當前目錄下有abc1.zip,abc2.zip和abc3.zip,我想一塊兒解壓縮它們:
# unzip abc\?.zip
註釋:?表示一個字符,若是用*表示任意多個字符。
4.我有一個很大的壓縮文件large.zip,我不想解壓縮,只想看看它裏面有什麼:
# unzip -v large.zip
5.我下載了一個壓縮文件large.zip,想驗證一下這個壓縮文件是否下載徹底了
# unzip -t large.zip
6.我用-v選項發現music.zip壓縮文件裏面有不少目錄和子目錄,而且子目錄中其實都是歌曲mp3文件,我想把這些文件都下載到第一級目錄,而不是一層一層建目錄:
# unzip -j music.zip
第三步:把Solr安裝目錄中dist子目錄下"apache-solr-nightly.war"重名爲"solr.war",而後再複製到到Tomcat安裝目錄中的webapps 子目錄下。
mv apache-solr-3.5.0.war solr.war
cp solr.war /usr/tomcat/webapps
再到"/usr/tomcat/webpapps"目錄中看看。
第四步:修改Tomcat配置文件server.xml,添加中文字符編碼。
修改前:
修改後:
第五步:把"/home/hadoop/solr/example/"下的solr目錄拷貝到"/usr/tomcat"目錄中。用下面命令進行復制。
cp -r solr /usr/tomcat
第六步:在"/usr/tomcat/conf/Catalina/localhost/"下建立一個solr.xml文件,內容以下所示:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="/usr/tomcat/webapps/solr.war" debug="0" crossContext="true" >
<Environment name="solr/home" type="java.lang.String" value="/usr/tomcat/solr" override="true" />
</Context>
備註:docBase爲solr的上傳目錄。
第七步:從新啓動Tomcat,在瀏覽器輸入"http://192.168.1.11:8080/solr/"。
意外出現,錯誤信息:Error loading class "solr.VelocityResponseWriter"
解決方案:在"/usr/tomcat/solr/conf"目錄中,找到"solrconfig.xml"文件,找到下面這句話。
<queryResponseWriter
name="velocity"
class="solr.VelocityResponseWriter" enable="${solr.velocity.enabled:true}"/>
把 enable="${solr.velocity.enabled:true}中的true修改成false。
當修改完畢以後,從新啓動Tomcat,而後再次輸入"http://192.168.1.11:8080/solr/"地址,即出現下面界面。
點"Solr Admin"又會進入下面所示的界面。
1)方案一
第一步:啓動Solr,啓動目錄:${SOLR_HOME}/example
java -jar start.jar
第二步:驗證Solr,在瀏覽器輸入下面內容:
http://localhost:8983/solr/admin/
http://localhost:8983/solr/admin/stats.jsp
備註:由於咱們是遠程訪問,因此須要把"localhost"改成相應機器的IP"192.168.1.11"。
第三步:nutch與solr集成
須要將Nutch目錄"runtime/local/conf" 下的"schema.xml"文件複製到Solr的"/example/solr/conf "下覆蓋原文件。schema.xml設置了索引的字段,把content項後面的stored="false" 改成 stored="true" 後在搜索返回值中就會包含含有關鍵字的具體內容。
2)方案二
直接利用咱們上面配置在Tomcat中Solr網頁,只須要將Nutch目錄"runtime/local/conf" 下的"schema.xml"文件複製到Tomcat的"solr/conf "下覆蓋原文件。schema.xml設置了索引的字段,把content項後面的stored="false" 改成 stored="true" 後在搜索返回值中就會包含含有關鍵字的具體內容。而後重啓Tomcat服務器,否則不會生效。