elasticsearch與Lucene相關介紹
Lucene是apache軟體基金會4 jakarta專案組的一個子專案,是一個開放原始碼的全文檢索引擎工具包,但它不是一個完整的全文檢索引擎,而是一個全文檢索引擎的架構,提供了完整的查詢引擎和索引引擎,部分文字分析引擎,它可以方便的嵌入到各種應用中實現針對應用的全文索引/檢索功能。
ElasticSearch是一個基於Lucene的搜尋伺服器。它提供了一個分散式多使用者能力的全文搜尋引擎,基於RESTful
web介面。Elasticsearch是用Java開發的,並作為Apache許可條款下的開放原始碼釋出,是當前流行的企業級搜尋引擎。設計用於雲端計算中,能夠達到實時搜尋,穩定,可靠,快速,安裝使用方便。
Elasticsearch與Lucene的比較
如圖中Lucene部署在單臺機器上,磁碟空間為1T。
當資料量很大,超過1T時,在單臺機器上是放不了的,需要分散式的散落在多臺機器上。如果其中一臺機器宕機,將會導致資料丟失;而且自己來實現搜尋功能和多臺機器通訊的過程,比較麻煩。
因此,Elasticsearch應運而生
Elasticsearch,基於Lucene,隱藏複雜性,提供簡單易用的restful api介面、Java api介面及其它語言的api介面
(1) 分散式的文件儲存引擎
(2) 分散式的搜尋引擎和分析引擎
(3) 分散式,支援PB級資料
Elasticsearch的特點:
自動維護資料的分佈到多個節點的索引的的建立,還有搜尋請求分佈到多個節點的執行。
自動維護資料的冗餘副本,保證當有機器宕機時不會丟失任何資料。
封裝了更多的高階功能,以給我們提供更多高階的支援,讓我們快速的開發應用,開發更加複雜的應用,複雜的搜尋功能,聚合分析的功能,基於地理位置的搜尋。