Lucene、Solr、ElasticSearch、hibernate-search四部曲

【前言】
從前年的時候,我都在內心有個想法。我想本身作一套搜索功能。在內心我是這麼想的:
一、有個資源信息庫,供我查詢,這個資源庫可能包含各類途徑生成的統一格式的數據庫。
二、查詢時,我先整段匹配資源庫找到資源。
三、接下來就是分詞了,這裏我聯想到了一些輸入法的細胞詞庫。也就是說能不能按照細胞詞庫先匹配咱們的搜索內容,而後將分詞後的搜索條件進行匹配查詢。
四、按照匹配度的高低進行排序。
直到昨天,在工做中剛剛得知Lucene、Solr。
【簡介】
Lucene是apache軟件基金會(這個我們前面介紹過)的一個子項目,是一個開源的全文檢索引擎工具包,但不是一個徹底的全文檢索引擎,是一個全文檢索引擎的架構,提供完整的查詢引擎和索引引擎,部分文本分析引擎。
Solr是一個獨立的企業及搜索應用服務器,用戶能夠經過http請求,向搜索引擎服務器提交必定格式的XML文件,生成索引。也能夠經過http get提出查找請求獲得XML格式的返回結果。
【Lucene 和solr】
本質區別在於:
一、Lucene是搜索庫,不是獨立的應用程序,而Solr是。
二、Lucene專一於搜索底層的建設,而Solr專一企業應用。
三、Lucene不負責支撐搜索服務所必須的管理,而Solr負責。
也就是說:Solr是Lucene面向企業搜索的應用擴展。也就是說,像學好Solr先學Lucene。
Lucene、Solr、ElasticSearch、hibernate-search四部曲
【問:什麼是全文搜索引擎?】
答:全文搜索引擎是經過互聯網提取的各個網站的信息,(以網頁文字爲主)而創建的數據庫中,檢索與用戶查詢條件匹配的相關記錄,而後按必定的排列順序將結果返回給用戶。
全文搜索引擎可分爲兩種:
一、擁有本身檢索程序,俗稱蜘蛛或機器人。這塊在電子商務的課程中,會有所學習。在電子商務中,學習它的主要目的在於,如何高效的將產品的關鍵詞描述清楚。好讓自檢程序抓取。這種搜索會自建數據庫,將搜索結果直接從自身數據庫中調用。
二、租用其餘搜索引擎的數據庫,按照自定的格式排列搜索結果。
【ElasticSearch(ES)和solr】
一、Solr利用Zookeeper進行分佈式管理
二、ElasticSearch自身帶有分佈式協調管理功能
三、Solr支持多種格式
四、ElasticSearch只支持json格式
五、Solr功能好一點,elasticSearch搜索時效率高
六、Solr傳統,ElasticSearch比較新。
Lucene、Solr、ElasticSearch、hibernate-search四部曲
【Hibernate Search】
Hibernate Search是在apache Lucene的基礎上創建的主要用於Hibernate的持久化模型的全文檢索工具。
像Lucene這樣的檢索引擎可以給咱們的項目在進行檢索的時候帶來很是高的效率,可是它們在基本對象的檢索時會有一些問題,好比不能實現檢索內容跟實體的轉換,Hibernate Search正是在這樣的狀況下發展起來的,基於對象的檢索引擎,可以很方便的將檢索出來的內容轉換爲具體的實體對象。此外Hibernate Search可以根據須要進行同步或異步的索引更新。
Lucene、Solr、ElasticSearch、hibernate-search四部曲
【Lucene】
Lucene的目的是爲軟件開發人員提供一個簡單易用的工具包,以方便在目標系統中實現全文檢索。
Lucene是一套用於全文檢索和搜索的開源程式庫。
我以爲,就目前而言。應當先了解Lucene。數據庫

相關文章
相關標籤/搜索