Solr: 企業等級的檢索引擎 – 簡介



什麼是 solr?

solr 是目前最廣泛使用的企業級搜尋引擎。

solr 不僅可進行全文檢索,他還能作為文件儲存型的 NoSQL 資料庫型態,支援交易紀錄,也能儲存 key-value 的資料型態。非常強大、效率。

solr 的技術架構由 RESTful XML/HTTP 以及 JSON APIs組成,支援目前世界廣泛使用的程式語言,例如:JAVA、Phyton、Ruby、C#、PHP 等。

最重要的, solr 後期為了雲端叢集運算而發展了 solrCloud 技術,讓企業超級大型資料可以分散雲端平行運算,並搭配 zookeeper 進行中央統一控管。藉此 solrCloud 技術達成「隨時擴充、相互備援、平行運算」等技術要求。

我需要 Solr 嗎?

  • 如果你的網站、軟體服務,需要用到大量「全文檢索」功能。例如:購物網站 – 顧客搜尋的關鍵字必定是千奇百怪,而這些索引結果,絕對不是直接查詢 SQL server 、MySQL 的特定欄位搜尋出來的。 solr 進行收錄時,就開始進行關鍵字拆分的工作,像是 「台北南港火車站」,solr 可能會切分成 「台北、南港、火車、火車站、車站」 這幾個關鍵字,然後對應到這筆資料,等待未來檢索的檢索請求。
  • 如果你需要速度快、可靠性高、容錯性高、擴展架構快速的資料儲存媒介。
  • 如果你想減低SQL資料庫負擔,可以考慮- 交易型 CRUD 使用SQL;查詢需求使用 Solr。將可大幅度減輕資料庫運行負荷。

 

Solr 特色

  • 超級快: solr 使用 倒排索引 (Inverted index)技術,分詞完成後,通過二分法與排序好的索引進行配對;進而快速查出索引的文件
  • 高亮顯示搜尋結果。如下圖

  • 管理介面簡單易用
  • 超強大全文檢索能力
  • 支援 分面搜尋(faceted searching)。如下圖

  • 業界常用標準:輸出結果支援 XML、JSON,並使用 WEB HTTP API 即可對接請求服務。
  • 高度可擴展、高度容錯性

 

Solr 知名案例

下方列出世界知名使用 Solr 的網站服務