Elasticsearch 是一個建立在全文搜尋引擎 Apache Lucene(TM) 基礎上的搜尋引擎,可以說 Lucene 是當今最先進,最高效的全功能開源搜尋引擎框架。
Elasticsearch是基於Apache Lucene的搜尋伺服器。它由Shay Banon開發並於2010年發布。現在是由Elasticsearch BV負責維護。其最新版本是:5.2.0
。
Elasticsearch是一個實時分散式和開源的全文搜尋和分析引擎。 它可以從RESTful Web服務介面存取,並使用模式少JSON(JavaScript物件符號)文件來儲存資料。它是基於Java程式設計語言,這使Elasticsearch能夠在不同的平台上執行。使使用者能夠以非常快的速度來搜尋非常大的資料量。
Elasticsearch的一般特性如下 -
2.0
下提供。Elasticsearch的主要概念如下 -
節點 - 它指的是Elasticsearch的單個正在執行的範例。單個物理和虛擬伺服器容納多個節點,這取決於其物理資源的能力,如RAM,儲存和處理能力。
叢集 - 它是一個或多個節點的集合。 叢集為整個資料提供跨所有節點的集合索引和搜尋功能。
索引 - 它是不同型別的文件和文件屬性的集合。索引還使用分片的概念來提高效能。 例如,一組文件包含社群網路應用的資料。
型別/對映 - 它是共用同一索引中存在的一組公共欄位的文件的集合。 例如,索引包含社群網路應用的資料,然後它可以存在用於使用者簡檔資料的特定型別,另一型別可用於訊息的資料,以及另一型別可用於評論的資料。
文件 - 它是以JSON格式定義的特定方式的欄位集合。每個文件都屬於一個型別並駐留在索引中。每個文件都與唯一識別符號(稱為UID)相關聯。
碎片 - 索引被水平細分為碎片。這意味著每個碎片包含文件的所有屬性,但包含的數量比索引少。水平分隔使碎片成為一個獨立的節點,可以儲存在任何節點中。主碎片是索引的原始水平部分,然後這些主碎片被複製到副本碎片中。
副本 - Elasticsearch允許使用者建立其索引和分片的副本。 複製不僅有助於在故障情況下增加資料的可用性,而且還通過在這些副本中執行並行搜尋操作來提高搜尋的效能。
Elasticsearch在處理請求和響應資料方面沒有多語言和資料格式支援(僅在JSON中可用),與Apache Solr不同,Elasticsearch不可以使用CSV,XML等格式。
Elasticsearch也有一些傷腦的問題發生,雖然在極少數情況下才會發生。
在Elasticsearch中,索引是型別的集合,因為資料庫是RDBMS(關聯式資料庫管理系統)中表的集合。每個表都是行的集合,就像每個對映都是JSON物件的Elasticsearch集合一樣。
Elasticsearch | 關聯式資料庫 |
---|---|
索引 | 資料庫 |
碎片 | 碎片 |
對映 | 表 |
欄位 | 欄位 |
JSON物件 | 元組 |