Solr搜索的基本介紹

1.什麼是Solr?

Solr是一個獨立的企業級搜索應用服務器,它對外提供類似於Web-service的API接口。用戶可以通過http請求,向搜索引擎服務器提交一定格式的XML文件,生成索引;也可以通過Http Get操作提出查找請求,並得到XML格式的返回結果。

2.Solr特點

Solr是一個高性能,採用Java開發,Solr基於Lucene的全文搜索服務器。同時對其進行了擴展,提供了比Lucene更爲豐富的查詢語言,同時實現了可配置、可擴展並對查詢性能進行了優化,並且提供了一個完善的功能管理界面,是一款非常優秀的全文搜索引擎。

3.Solr的工作方式

文檔通過Http利用XML 加到一個搜索集合中。Solr查詢該集合也是通過http收到一個XML/JSON響應來實現。它的主要特性包括:高效、靈活的緩存功能,垂直搜索功能,高亮顯示搜索結果,通過索引複製來提高可用性,提供一套強大Data Schema來定義字段,類型和設置文本分析,提供基於Web的管理界面等。

4.什麼是Lucene?

Lucene是apache軟件基金會 jakarta項目組的一個子項目,是一個開放源代碼的全文檢索引擎工具包,即它不是一個完整的全文檢索引擎,而是一個全文檢索引擎的架構,提供了完整的查詢引擎和索引引擎,部分文本分析引擎(英文與德文兩種西方語言)。

Lucene的目的是爲軟件開發人員提供一個簡單易用的工具包,以方便的在目標系統中實現全文檢索的功能,或者是以此爲基礎建立起完整的全文檢索引擎。

5.Solr和Lucene的關係

Solr是一個高性能,採用Java開發,基於Lucene的全文搜索服務器。同時對其進行了擴展,提供了比Lucene更爲豐富的查詢語言,同時實現了可配置、可擴展並對查詢性能進行了優化,並且提供了一個完善的功能管理界面,是一款非常優秀的全文搜索引擎。

Solr和Lucene的本質區別有以下三點:搜索服務器,企業級和管理。Lucene本質上是搜索庫,不是獨立的應用程序,而Solr是。Lucene專注於搜索底層的建設,而Solr專注於企業應用。Lucene不負責支撐搜索服務所必須的管理,而Solr負責。所以說,一句話概括Solr: Solr是Lucene面向企業搜索應用的擴展。

6.Solr服務原理

Solr對外提供標準的http接口來實現對數據的索引的增加、刪除、修改、查詢。

在Solr中,用戶通過向部署在servlet 容器中的Solr Web應用程序發送 HTTP 請求來啓動索引和搜索。

Solr接受請求,確定要使用的適當SolrRequestHandler,然後處理請求。通過 HTTP 以同樣的方式返回響應。默認配置返回Solr的標準 XML 響應,也可以配置Solr的備用響應格式。

7.Solr原理圖
在這裏插入圖片描述
可以向Solr索引servlet傳遞四個不同的索引請求:

  1. add/update允許向Solr添加文檔或更新文檔。直到提交後才能搜索到這些添加和更新。

  2. commit 告訴Solr,應該使上次提交以來所做的所有更改都可以搜索到。

  3. optimize 重構 Lucene 的文件以改進搜索性能。索引完成後執行一下優化通常比較好。如果更新比較頻繁,則應該在使用率較低的時候安排優化。一個索引無需優化也可以正常地運行。優化是一個耗時較多的過程。

  4. delete 可以通過 id 或查詢來指定。按 id 刪除將刪除具有指定 id 的文檔;按查詢刪除將刪除查詢返回的所有文檔。

8.認識下Solr的管理界面
在這裏插入圖片描述
9.Solr Core

Solr裏面的core就像數據庫裏面的一個表,用來管理索引和相關配置。

core.properties

#Written by CorePropertiesLocator

#Sat Mar 15 15:49:01 CST 2014

name=core0

config=solrconfig.xml

schema=schema.xml

dataDir=data

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章