1. 程式人生 > >ElasticSearch教程-ES是什麼

ElasticSearch教程-ES是什麼

Elasticsearch是一個基於Apache Lucene(TM)的開源搜尋引擎。無論在開源還是專有領域,Lucene可以被認為是迄今為止最先進、效能最好的、功能最全的搜尋引擎庫。

但是,Lucene只是一個庫。想要使用它,你必須使用Java來作為開發語言並將其直接整合到你的應用中,更糟糕的是,Lucene非常複雜,你需要深入瞭解檢索的相關知識來理解它是如何工作的。

Elasticsearch也使用Java開發並使用Lucene作為其核心來實現所有索引和搜尋的功能,但是它的目的是通過簡單的RESTful API來隱藏Lucene的複雜性,從而讓全文搜尋變得簡單。

不過,Elasticsearch不僅僅是Lucene和全文搜尋,我們還能這樣去描述它:

  • 分散式的實時檔案儲存,每個欄位都被索引並可被搜尋
  • 分散式的實時分析搜尋引擎
  • 可以擴充套件到上百臺伺服器,處理PB級結構化或非結構化資料

而且,所有的這些功能被整合到一個服務裡面,你的應用可以通過簡單的RESTful API、各種語言的客戶端甚至命令列與之互動。

上手Elasticsearch非常容易。它提供了許多合理的預設值,並對初學者隱藏了複雜的搜尋引擎理論。它開箱即用(安裝即可使用),只需很少的學習既可在生產環境中使用。

Elasticsearch在Apache 2 license下許可使用,可以免費下載、使用和修改。

隨著你對Elasticsearch的理解加深,你可以根據不同的問題領域定製Elasticsearch的高階特性,這一切都是可配置的,並且配置非常靈活。

模糊的歷史

多年前,一個叫做Shay Banon的剛結婚不久的失業開發者,由於妻子要去倫敦學習廚師,他便跟著也去了。在他找工作的過程中,為了給妻子構建一個食譜的搜尋引擎,他開始構建一個早期版本的Lucene。

直接基於Lucene工作會比較困難,所以Shay開始抽象Lucene程式碼以便Java程式設計師可以在應用中新增搜尋功能。他釋出了他的第一個開源專案,叫做“Compass”。

後來Shay找到一份工作,這份工作處在高效能和記憶體資料網格的分散式環境中,因此高效能的、實時的、分散式的搜尋引擎也是理所當然需要的。然後他決定重寫Compass庫使其成為一個獨立的服務叫做Elasticsearch。

第一個公開版本出現在2010年2月,在那之後Elasticsearch已經成為Github上最受歡迎的專案之一,程式碼貢獻者超過300人。一家主營Elasticsearch的公司就此成立,他們一邊提供商業支援一邊開發新功能,不過Elasticsearch將永遠開源且對所有人可用。

Shay的妻子依舊等待著她的食譜搜尋……