es 映射 mysql_ElasticSearch系列02:ES基础概念详解
1、ES 簡介
1)定義ES是elaticsearch簡寫, Elasticsearch是一個開源的高擴展的分布式全文檢索引擎,它可以近乎實時的存儲、檢索數(shù)據(jù);本身擴展性很好,可以擴展到上百臺服務(wù)器,處理PB級別的數(shù)據(jù)。
Elasticsearch也使用Java開發(fā)并使用Lucene作為其核心來實現(xiàn)所有索引和搜索的功能,但是它的目的是通過簡單的RESTful API來隱藏Lucene的復(fù)雜性,從而讓全文搜索變得簡單。
2)特點和優(yōu)勢分布式實時文件存儲,可將每一個字段存入索引,使其可以被檢索到。
近乎實時分析的分布式搜索引擎。
分布式:索引分拆成多個分片,每個分片可有零個或多個副本。集群中的每個數(shù)據(jù)節(jié)點都可承載一個或多個分片,并且協(xié)調(diào)和處理各種操作;
負載再平衡和路由在大多數(shù)情況下自動完成。
可以擴展到上百臺服務(wù)器,處理PB級別的結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù)(官網(wǎng)是這么說的)。也可以運行在單臺PC上(已測試)。
支持插件機制,分詞插件、同步插件、Hadoop插件、可視化插件等。
2、ES 基本概念
1)節(jié)點(Node)
運行了單個實例的ES主機稱為節(jié)點,它是集群的一個成員,可以存儲數(shù)據(jù)、參與集群索引及搜索操作。節(jié)點通過為其配置的ES集群名稱確定其所要加入的集群。
2)集群(cluster)
ES可以作為一個獨立的單個搜索服務(wù)器。不過,一般為了處理大型數(shù)據(jù)集,實現(xiàn)容錯和高可用性,ES可以運行在許多互相合作的服務(wù)器上。這些服務(wù)器的集合稱為集群。
3)分片(Shard)
ES的“分片(shard)”機制可將一個索引內(nèi)部的數(shù)據(jù)分布地存儲于多個節(jié)點,它通過將一個索引切分為多個底層物理的Lucene索引完成索引數(shù)據(jù)的分割存儲功能,這每一個物理的Lucene索引稱為一個分片(shard)。
這樣的好處是可以把一個大的索引拆分成多個,分布到不同的節(jié)點上。降低單服務(wù)器的壓力,構(gòu)成分布式搜索,提高整體檢索的效率(分片數(shù)的最優(yōu)值與硬件參數(shù)和數(shù)據(jù)量大小有關(guān))。分片的數(shù)量只能在索引創(chuàng)建前指定,并且索引創(chuàng)建后不能更改。
4)副本(Replica)
副本是一個分片的精確復(fù)制,每個分片可以有零個或多個副本。副本的作用一是提高系統(tǒng)的容錯性,當(dāng)某個節(jié)點某個分片損壞或丟失時可以從副本中恢復(fù)。二是提高es的查詢效率,es會自動對搜索請求進行負載均衡。
3、ES的數(shù)據(jù)架構(gòu)
1)索引(index)
ES將數(shù)據(jù)存儲于一個或多個索引中,索引是具有類似特性的文檔的集合。類比傳統(tǒng)的關(guān)系型數(shù)據(jù)庫領(lǐng)域來說,索引相當(dāng)于SQL中的一個數(shù)據(jù)庫。
一個ES集群中可以按需創(chuàng)建任意數(shù)目的索引,但根據(jù)不同的硬件配置,索引數(shù)有一個建議范圍(這個知識點我們以后進行詳細講解)【歡迎關(guān)注公眾號“ZeroTeHero”,獲取最新推送】。
2)類型(Type)
類型是索引內(nèi)部的邏輯分區(qū)(category/partition),然而其意義完全取決于用戶需求。因此,一個索引內(nèi)部可定義一個或多個類型(type)。一般來說,類型就是為那些擁有相同的域的文檔做的預(yù)定義。類比傳統(tǒng)的關(guān)系型數(shù)據(jù)庫領(lǐng)域來說,類型相當(dāng)于“表”。
特別注意的是,根據(jù)官網(wǎng)信息:在Elasticsearch 6.0.0或更高版本中創(chuàng)建的索引只能包含一個映射類型。在5.x中創(chuàng)建的具有多種映射類型的索引將繼續(xù)像在Elasticsearch 6.x中一樣工作。類型將在Elasticsearch 7.0.0中的API中棄用,并在8.0.0中完全刪除。
3)文檔(Document)
文檔是Lucene索引和搜索的原子單位,它是包含了一個或多個域的容器,基于JSON格式進行表示。文檔由一個或多個域組成,每個域擁有一個名字及一個或多個值,有多個值的域通常稱為“多值域”。每個文檔可以存儲不同的域集,但同一類型下的文檔至應(yīng)該有某種程度上的相似之處。相當(dāng)于mysql表中的row。
4)映射(Mapping)
映射是定義文檔及其包含的字段如何存儲和索引的過程。
例如,使用映射來定義:哪些字符串字段應(yīng)該被視為全文字段。
哪些字段包含數(shù)字、日期或地理位置。
文檔中所有字段的值是否應(yīng)該被索引到catch-all _all字段中。
日期值的格式。
用于控制動態(tài)添加字段的映射的自定義規(guī)則。
每個索引都有一個映射類型,它決定了文檔的索引方式。
5)與 mysql 的對比下節(jié)預(yù)告:ES的數(shù)據(jù)類型,敬請期待【歡迎關(guān)注公眾號“ZeroTeHero”,獲取最新推送】
總結(jié)
以上是生活随笔為你收集整理的es 映射 mysql_ElasticSearch系列02:ES基础概念详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信零钱通怎么转出到银行卡?要不要收手续
- 下一篇: 信用卡贷款能贷多少 贷款的手续费需全额承