2017年2月12日, 星期日java
Solr它是一種開放源碼的、基於 Lucene Java 的搜索服務器,易於加入到 Web 應用程序中。Solr 提供了層面搜索(就是統計)、命中醒目顯示而且支持多種輸出格式(包括XML/XSLT 和JSON等格式)。它易於安裝和配置,並且附帶了一個基於HTTP 的管理界面。可使用 Solr 的表現優異的基本搜索功能,也能夠對它進行擴展從而知足企業的須要。Solr的特性包括:web
· 高級的全文搜索功能 緩存
· 專爲高通量的網絡流量進行的優化 tomcat
· 基於開放接口(XML和HTTP)的標準 性能優化
· 綜合的HTML管理界面 服務器
· 可伸縮性-可以有效地複製到另一個Solr搜索服務器 網絡
· 使用XML配置達到靈活性和適配性 架構
· 可擴展的插件體系app
Lucene是一個基於Java的全文信息檢索工具包,它不是一個完整的搜索應用程序,而是爲你的應用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta(雅加達) 家族中的一個開源項目。也是目前最爲流行的基於Java開源全文檢索工具包。目前已經有不少應用程序的搜索功能是基於 Lucene ,好比Eclipse 幫助系統的搜索功能。Lucene可以爲文本類型的數據創建索引,因此你只要把你要索引的數據格式轉化的文本格式,Lucene 就能對你的文檔進行索引和搜索。webapp
Solr與Lucene 並非競爭對立關係,偏偏相反Solr 依存於Lucene,由於Solr底層的核心技術是使用Lucene 來實現的,Solr和Lucene的本質區別有如下三點:搜索服務器,企業級和管理。Lucene本質上是搜索庫,不是獨立的應用程序,而Solr是。Lucene專一於搜索底層的建設,而Solr專一於企業應用。Lucene不負責支撐搜索服務所必須的管理,而Solr負責。因此說,一句話歸納 Solr: Solr是Lucene面向企業搜索應用的擴展。
Solr與Lucene架構圖:
Solr使用Lucene而且擴展了它!
· 一個真正的擁有動態字段(Dynamic Field)和惟一鍵(Unique Key)的數據模式(Data Schema)
· 對Lucene查詢語言的強大擴展!
· 支持對結果進行動態的分組和過濾
· 高級的,可配置的文本分析
· 高度可配置和可擴展的緩存機制
· 性能優化
· 支持經過XML進行外部配置
· 擁有一個管理界面
· 可監控的日誌
· 支持高速增量式更新(Fast incremental Updates)和快照發布(Snapshot Distribution)
1、準備jdk7和tomcat7
2、拷貝solr目錄下example/webapps/solr.war,到tomcat下的webapps目錄中。
3、啓動tomcat7
4、編輯tomcat7中的webapps/solr目錄中WEB-INF/web.xml
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/root/solr_home</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
5、拷貝solr目錄下的example/lib/ext目錄的全部jar到tomcat7的solr的lib
6、拷貝solr目錄下的example/solr/* 全部文件到 /root/solr_home 下
7、從新啓動tomcat
8、訪問http://localhost:8080/solr