Apache Solr 介紹html
Solr 是一個開源的企業級搜索服務器,底層使用易於擴展和修改的Java 來實現。服務器通訊使用標準的HTTP 和XML,因此若是使用Solr 瞭解Java 技術會有用卻不是必須的要求。java
Solr 主要特性有:強大的全文檢索功能,高亮顯示檢索結果,動態集羣,數據庫接口和電子文檔(Word ,PDF 等)的處理。並且Solr 具備高度的可擴展,支持分佈搜索和索引的複製。web
Lucene 是一個基於 Java 的全文信息檢索工具包,它不是一個完整的搜索應用程序,而是爲你的應用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta 家族中的一個開源項目。也是目前最爲流行的基於 Java 開源全文檢索工具包。shell
目前已經有不少應用程序的搜索功能是基於 Lucene ,好比 Eclipse 幫助系統的搜索功能。Lucene 可以爲文本類型的數據創建索引,因此你只要把你要索引的數據格式轉化的文本格式,Lucene 就能對你的文檔進行索引和搜索。數據庫
Solr 與Lucene 並非競爭對立關係,偏偏相反Solr 依存於Lucene ,由於Solr 底層的核心技術是使用Apache Lucene 來實現的,簡單的說Solr 是Lucene 的服務器化。須要注意的是Solr 並非簡單的對Lucene 進行封裝,它所提供的大部分功能都區別於Lucene 。apache
Solr 必須運行在Java1.5 或更高版本的Java 虛擬機中,運行標準Solr 服務只須要安裝JRE 便可,但若是須要擴展功能或編譯源碼則須要下載JDK 來完成。能夠經過下面的地址下載所需JDK 或JRE :api
Solr 能夠運行在任何Java 中間件中,下面將以開源Apache Tomcat 爲例講解Solr 的安裝、配置與基本使用。本文使用Tomcat5.5 解壓版進行演示,可在下面地址下載最新版本http://tomcat.apache.org/download-55.cgitomcat
本文發佈時Solr1.4 爲最新的版本,下文介紹內容均針對該版本,如與Solr 最新版本有出入請以官方網站內容爲準。Solr官方網站下載地址:http://www.apache.org/dyn/closer.cgi/lucene/solr/bash
Solr 的源碼沒有放在同一個目錄下,src/java 存放大多數文件,src/common 是服務器端與客戶端公用的代碼,src/test 放置solr 的測試程序,serlvet 的代碼放在src/webapp/src 中。服務器
一個運行的Solr 服務其主目錄包含了Solr 的配置文件和數據(Lucene 的索引文件)
Solr 的主目錄展開後爲以下結構:
將apache-solr-1.4.0/dist/apache-solr-1.4.0.war 從安裝包中解壓到<tomcat home>/webapps 下。WAR 是一個完整的web 應用程序,包括了Solr 的Jar 文件和全部運行Solr 所依賴的Jar 文件,Jsp 和不少的配置文件與資源文件,這裏須要注意的是:WAR 文件中不包括Solr 主目錄,所以在啓動tomcat 以前咱們要先指定Solr 的主目錄。
將安裝程序中的apache-solr-1.4.0/example/solr 文件夾解壓到<tomcat homt>/ 下,而後在<tomcat home>/bin/catalina.bat 第一行添加以下內容:
set JAVA_OPTS=%JAVA_OPTS% -Dsolr.solr.home=<tomcat home>/solr
注:Windows 之外操做系統需修改 catalina.sh 文件。
啓動tomcat ,apache-solr-1.4.0.war 自動發佈爲web 應用。
點擊連接訪問Solr 控制檯界面,http://localhost:8080/apache-solr-1.4.0/ ,顯示以下界面表示啓動成功。
圖 1 Solr 歡迎界面
圖 2 管理控制檯界面
SolrJ 是Solr 服務器的一個Java 接口,使用該接口不再同爲慮客戶端與服務器端交互時格式解析和轉換的問題煩惱了,取而代之的是用你熟悉的對象來進行相關的操做,並且隨着Solr 的不斷升級SolrJ 也會一樣提供這些新加入的功能。