海量數據檢索之Solr技術初識篇

Solr Lucene MySQL XML 軟件開發漫談 2017-05-08

簡介

Solr是一個基於Lucene的全文搜索服務器。同時對其進行了擴展,提供了比Lucene更為豐富的面向使用的查詢語言,同時實現了可配置、可擴展並對查詢性能進行了優化,並且提供了一個完善的功能管理界面。它支持 XML/HTTP協議,支持 JSON API 接口。

Solr特點

可擴展性:Solr 可以把建立索引和查詢處理的運算分佈到一個集群內的多臺服務器上。

快速部署:Solr是開源軟件,安裝和配置都很方便,可以根據安裝包內的Sample配置直接上手。

優化的搜索功能:Solr搜索夠快,對於複雜的搜索查詢Solr可以做到毫秒級的處理,通常幾十毫秒就能處理完一次複雜查詢。

海量數據:Solr 是針對億級以上的海量數據處理而設計的,可以很好地處理海量數據檢索。

數據庫同步友好:如Mysql,HBase等。

應用場景

在一些大型門戶網站、電子商務網站等都需要站內搜索功能,使用傳統的數據庫查詢方式實現搜索無法滿足一些高級的搜索需求,比如:搜索速度要快、搜索結果按相關度排序、搜索內容格式不固定等,這裡就需要使用全文檢索技術實現搜索功能。如:

1.中大型的電商網站中標配具體如:商品檢索,熱度排名等。

2.門戶網站中按關鍵詞搜索對應的內容。

3.各種日誌檢索。

4.評分排名等。

Solr架構圖

海量數據檢索之Solr技術初識篇

Solr架構圖

檢索過程

Solr/Lucene採用的是一種反向索引,就是從關鍵字到文檔的映射過程,保存這種映射信息的索引稱為反向索引。

全文檢索大體分兩個過程,索引創建(Indexing)和搜索索引(Search)

索引創建:將現實世界中所有的結構化和非結構化數據提取信息,創建索引的過程。

搜索索引:就是得到用戶的查詢請求,搜索創建的索引,然後返回結果的過程。

注:具體索引原理本文不做具體介紹,查資料比較多。

數據庫同步數據

如下圖例子:

海量數據檢索之Solr技術初識篇

數據庫同步數據

注:接下來不定期寫Solr安裝配置和結合在J2EE項目中應用的文章。

相關推薦

推薦中...