ES 常用元素專業術語詳解

索引的基本概念:

1、索引(名詞):一個 索引 類似關係型數據庫中的一個 數據庫
2、索引(動詞):索引一個文檔 就是存儲一個文檔到一個 索引 (名詞)中以便它可以被檢索和查詢到。這非常類似於 SQL 語句中的 INSERT 關鍵詞,除了文檔已存在時新文檔會替換舊文檔情況之外。
基於倒排索引原則,會給文檔建立單獨的內存索引,倒排索引主要處理 屬性字段的分詞
3、倒排索引:關係型數據庫通過增加一個 索引 比如一個 B樹(B-tree)索引 到指定的列上,以便提升數據檢索速度。Elasticsearch 和 Lucene 使用了一個叫做 倒排索引 的結構來達到相同的目的。

索引命名規範:索引名字必須小寫,不能以下劃線開頭,不能包含逗號。

索引必須包含的三大元素:

_index

文檔在哪存放,一個 索引 應該是因共同的特性被分組到一起的文檔集合。 例如,你可能存儲所有的產品在索引 products 中,而存儲所有銷售的交易到索引 sales 中。

實際上,在 Elasticsearch 中,我們的數據是被存儲和索引在 分片 中,而一個索引僅僅是邏輯上的命名空間, 這個命名空間由一個或者多個分片組合在一起。 然而,這是一個內部細節,我們的應用程序根本不應該關心分片,對於應用程序而言,只需知道文檔位於一個 索引 內。 Elasticsearch 會處理所有的細節。

_type

文檔表示的對象類別,

數據可能在索引中只是鬆散的組合在一起,但是通常明確定義一些數據中的子分區是很有用的。 例如,所有的產品都放在一個索引中,但是你有許多不同的產品類別,比如 "electronics" 、 "kitchen" 和 "lawn-care"。

這些文檔共享一種相同的(或非常相似)的模式:他們有一個標題、描述、產品代碼和價格。他們只是正好屬於“產品”下的一些子類。

Elasticsearch 公開了一個稱爲 types (類型)的特性,它允許您在索引中對數據進行邏輯分區。不同 types 的文檔可能有不同的字段,但最好能夠非常相似。 我們將在 類型和映射 中更多的討論關於 types 的一些應用和限制。

一個 _type 命名可以是大寫或者小寫,但是不能以下劃線或者句號開頭,不應該包含逗號, 並且長度限制爲256個字符. 我們使用 blog 作爲類型名舉例。

_id

文檔唯一標識,ID 是一個字符串,當它和 _index 以及 _type 組合就可以唯一確定 Elasticsearch 中的一個文檔。 當你創建一個新的文檔,可以自定義 _id ,也可以讓 Elasticsearch 自動生成,如果不提供_id默認是ES自動生成。

Lucene(魯C恩):Elasticsearch是一個基於Apache Lucene(TM)的分佈式可擴展的實時搜索和分析引擎.
Elasticsearch 在 Lucene 的基礎上進行封裝,實現了分佈式搜索引擎。
Lucene就是個文檔庫

集羣
node:節點,每臺計算機是一個節點
shard:主分片,用來存放數據,多分片會對數據進行切割,id 1、3、4 在分片1上,2、3在分片2上。
replica:副本分片,用來對主分片進行數據copy,實現提高查詢效率。
Index:在ES 中索引有三層含義
document: 文檔

總結:

ES是面向文檔的數據庫
實時分析的分佈式搜索引擎,效率極高
可以擴展到上百臺服務器,處理PB級別的結構化或非結構化數據
反向索引又叫倒排索引,是根據文章內容中的關鍵字建立索引。
搜索引擎原理就是建立反向索引。
Elasticsearch 也是 Master-slave 架構,也實現了數據的分片和備份。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章