ES原理

1.什么是ES?

ES全稱elasticsearch,是基于lucene的全文搜索引擎,能夠?qū)A繑?shù)據(jù)的存儲(chǔ)和高速檢索.

lucene是阿帕奇的開(kāi)源搜索引擎框架,用于處理純文本數(shù)據(jù),提供建立索引,執(zhí)行搜索等接口,不提供分布式服務(wù),分布式服務(wù)是有es提供的,包括數(shù)據(jù)的存儲(chǔ).

2.ES常見(jiàn)應(yīng)用場(chǎng)景:

電商項(xiàng)目的商品搜索;

ELK日志系統(tǒng);

概念:

es中有幾個(gè)比較重要的概念,index,type,document,field.那這幾個(gè)名詞代表什么呢?下面就拿es和關(guān)系型數(shù)據(jù)庫(kù)做一個(gè)比較:

index————》dataBase

type————〉table

document————》row

field————〉col

說(shuō)明:index相當(dāng)于mysql的一個(gè)數(shù)據(jù)庫(kù);type相當(dāng)于一張表(es6之后取消了type,相當(dāng)于一個(gè)index只有一個(gè)type);document相當(dāng)于表中的一條記錄;field相當(dāng)于表的一個(gè)字段.

es之所以查詢速度快,是因?yàn)閑s采用的的是倒排索引的方式存儲(chǔ)和管理數(shù)據(jù),倒排索引:ES的搜索是基于文檔(document)的,每個(gè)文檔的內(nèi)容會(huì)被分成一個(gè)個(gè)的詞(term),所有的詞形成了詞典(term list).es在存儲(chǔ)數(shù)據(jù)時(shí)就會(huì)對(duì)doc進(jìn)行拆分成term,然后會(huì)將這些term和doc進(jìn)行關(guān)聯(lián)形成倒排文件.下面舉例說(shuō)明:

說(shuō)明:doc1和doc2為兩個(gè)文檔,當(dāng)這兩個(gè)文檔存儲(chǔ)到es時(shí),會(huì)對(duì)這兩個(gè)文檔進(jìn)行分詞,常見(jiàn)的為ik分詞器,形成了表格中的詞(term)列,詞所在的文檔以及在文檔中出現(xiàn)的頻率(此外還包含在文檔中的位置,本文沒(méi)有展示),展示在表格的第二列.

在實(shí)際工作中,es是以集群部署的,這樣保證了系統(tǒng)的可靠性,同時(shí)也能實(shí)現(xiàn)PB級(jí)的數(shù)據(jù)存儲(chǔ).在集群中,clusterName相同的服務(wù)屬于同一個(gè)集群,每臺(tái)服務(wù)就是集群的一個(gè)node(節(jié)點(diǎn)),es的節(jié)點(diǎn)主要分為:主節(jié)點(diǎn),數(shù)據(jù)節(jié)點(diǎn),協(xié)調(diào)節(jié)點(diǎn).主節(jié)點(diǎn)(master node):全局唯一,主要負(fù)責(zé)集群方面的管理,包括對(duì)索引的管理,一般不存儲(chǔ)數(shù)據(jù);數(shù)據(jù)節(jié)點(diǎn)(data node):用于存儲(chǔ)數(shù)據(jù);協(xié)調(diào)節(jié)點(diǎn):用于在索引文檔時(shí),將各個(gè)節(jié)點(diǎn)返回的數(shù)據(jù)進(jìn)行統(tǒng)一處理,最終返回個(gè)客戶端.

創(chuàng)建索引時(shí)需要指定分片數(shù)和副本分片數(shù),默認(rèn)5個(gè)分片,每個(gè)分片1個(gè)副本分片,主分片要在創(chuàng)建索引時(shí)就固定,副本分片可以后期修改.一般設(shè)計(jì)的依據(jù)是當(dāng)前服務(wù)器的配置,以及考慮后期業(yè)務(wù)數(shù)據(jù)的增長(zhǎng)量.當(dāng)一個(gè)索引的數(shù)據(jù)量很大的時(shí)候,可以考慮使用索引別名來(lái)管理多個(gè)索引,或者創(chuàng)建顆粒度更細(xì)的索引,例如在日志系統(tǒng)中,為相同的業(yè)務(wù)日志每天都創(chuàng)建一個(gè)索引.


集群結(jié)構(gòu)圖

未完待續(xù)........

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容