1. NRT(Near Realtime):近實時
兩方面:
- 寫入資料時,過一秒才會被搜尋到,因為內部在分詞,錄入索引。(倒排索引)
- es搜尋時:搜尋和分析資料需要秒級出結果。
2.Cluster:叢集
包含一個或多個啟動著es例項的機器群。通常一臺機器起一個es例項。同一網路下,集名一樣的多個es例項自動組成叢集,自動均衡分片等行為。預設叢集名為“elasticsearch”
3.Node:節點
每一個es例項稱為一個節點。節點名自動分配,也可以手動分配。
4.Document:文件
es中的最小資料單位。一個document就像資料庫中的一條記錄。通常以json格式顯示。多個document儲存於一個索引(Index)中。
book document
{
"book_id":"1",
"book_name":"java程式設計思想",
"book_desc":"java的基礎從0到精通,從入門到放棄.......",
"category_id":"1",
"category_name":"java"
}
5.Index:索引
包含一堆有相似結構的文件規則。(把它理解成資料庫中的表就可以了)
索引建立規則:
- 僅限小寫字母
- 不能包含\ / ? “ < > | #以及空格等特殊符號
- 從7.0版本開始就不再包含冒號
- 不能以- _或+開頭
- 不能超過255個位元組(注意它是位元組,因此多個位元組符將計入255個限制)
6.Field:欄位
就像資料庫中的列(Columns),定義每個document應該有的欄位。
7.Type:型別
每個索引裡都可以有一個或多個type,type是index中的一個邏輯資料分類,一個type下的document,都有相同的field。
注意:6.0之前的版本有type(型別)概念,type相當於關係xing資料庫中的表,ES官方將在ES9.0版本中徹底刪除type。此學習文件type都為_doc。
8.shard:分片
index資料過大時,將index裡的資料,分為多個shard,分散式儲存在各個伺服器上面。可以支援海量資料和高併發,提高效能和吞吐量,充分利用多臺機器的cpu。
9.replica:副本
在分散式環境下,任何一臺機器都有會有隨時當機的可能,如果當機,index的一個分片沒有,導致此index不能搜尋。所以為了確保資料的安全,我們會將每個index的分片進行備份,儲存在另外的機器上,保證少數機器當機後es叢集仍可以搜尋。
能正常提供查詢和插入的分片我們叫做主分片(primary shard),其餘的我們管它叫做備份分片(replica shard)。
es6預設新建索引時,5個分片,1副本,也就是一主一備,共10個分片。所以es叢集最小規模為兩臺。es7 1分片1副本,一共2分片。
核心概念:elasticsearch和資料庫對比
關係型資料庫(比如MYSQL) | 非關係型資料庫(elasticsearch) |
---|---|
資料庫Databas | 索引Index |
表Table | 索引Index(原為Type) |
資料行Row | 文件Document |
資料列Column | 欄位Field |
約束Schema | 對映Mapping |
本作品採用《CC 協議》,轉載必須註明作者和本文連結