Solr

2017年2月12日, 星期日java


1.solr是什麼

 

Solr它是一種開放源碼的、基於 Lucene Java 的搜索服務器,易於加入到 Web 應用程序中。Solr 提供了層面搜索(就是統計)、命中醒目顯示而且支持多種輸出格式(包括XML/XSLT JSON等格式)。它易於安裝和配置,並且附帶了一個基於HTTP 的管理界面。可使用 Solr 的表現優異的基本搜索功能,也能夠對它進行擴展從而知足企業的須要。Solr的特性包括:web

· 高級的全文搜索功能 緩存

· 專爲高通量的網絡流量進行的優化 tomcat

· 基於開放接口(XMLHTTP)的標準 性能優化

· 綜合的HTML管理界面 服務器

· 可伸縮性-可以有效地複製到另一個Solr搜索服務器 網絡

· 使用XML配置達到靈活性和適配性 架構

· 可擴展的插件體系app

2. Lucene 是什麼?

Lucene是一個基於Java的全文信息檢索工具包,它不是一個完整的搜索應用程序,而是爲你的應用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta(雅加達) 家族中的一個開源項目。也是目前最爲流行的基於Java開源全文檢索工具包。目前已經有不少應用程序的搜索功能是基於 Lucene ,好比Eclipse 幫助系統的搜索功能。Lucene可以爲文本類型的數據創建索引,因此你只要把你要索引的數據格式轉化的文本格式,Lucene 就能對你的文檔進行索引和搜索。webapp

3. Solr vs Lucene

SolrLucene 並非競爭對立關係,偏偏相反Solr 依存於Lucene,由於Solr底層的核心技術是使用Lucene 來實現的,SolrLucene的本質區別有如下三點:搜索服務器,企業級和管理。Lucene本質上是搜索庫,不是獨立的應用程序,而Solr是。Lucene專一於搜索底層的建設,而Solr專一於企業應用。Lucene不負責支撐搜索服務所必須的管理,而Solr負責。因此說,一句話歸納 Solr: SolrLucene面向企業搜索應用的擴展。

SolrLucene架構圖:

 

Solr使用Lucene而且擴展了它!

· 一個真正的擁有動態字段(Dynamic Field)惟一鍵(Unique Key)的數據模式(Data Schema)

· Lucene查詢語言的強大擴展

· 支持對結果進行動態的分組和過濾

· 高級的,可配置的文本分析

· 高度可配置和可擴展的緩存機制

· 性能優化

· 支持經過XML進行外部配置

· 擁有一個管理界面

· 可監控的日誌

· 支持高速增量式更新(Fast incremental Updates)和快照發布(Snapshot Distribution)

4.搭建安裝solr

1、準備jdk7tomcat7

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目錄的全部jartomcat7solrlib

6、拷貝solr目錄下的example/solr/* 全部文件到 /root/solr_home

7、從新啓動tomcat

8、訪問http://localhost:8080/solr



相關文章
相關標籤/搜索