Elasticsearch的概念

什么是Elasticsearch

elasticsearch是一個(gè)全文搜索引擎,用于快速的存儲(chǔ)、搜索及海量數(shù)據(jù)的分析引擎

為什么用Elasticsearch

elasticsearch是一個(gè)開(kāi)源的搜索引擎,建立在一個(gè)全文搜索引擎庫(kù) Apache Lucene? 基礎(chǔ)之上
Lucene是目前存在不論開(kāi)源還是私有的,擁有最先進(jìn)、高性能的搜索引擎庫(kù),但也僅之時(shí)一個(gè)庫(kù)。但要用上Lucene我們需要編寫(xiě)java引入Lucene包才可以使用,而且我們需要對(duì)信息檢索有一定程度的理解才能明白 Lucene 是怎么工作的,反正用起來(lái)沒(méi)那么簡(jiǎn)單。
而elasticsearch則是使用java編寫(xiě),內(nèi)部使用Lucene索引及搜索,它使目標(biāo)索引變得簡(jiǎn)單,相當(dāng)于對(duì)Lucene進(jìn)行了封裝并提供了一套簡(jiǎn)單一直的API來(lái)幫助我們進(jìn)行索引存儲(chǔ)
但elasticsearch并不僅是一個(gè)簡(jiǎn)單的Lucene的封裝的全文搜索引擎,它還包括了以下三個(gè)特性?xún)?nèi)容:
1、分布式的實(shí)時(shí)文檔存儲(chǔ),每一個(gè)字段都可以被索引搜索
2、實(shí)時(shí)分析的搜索引擎
3、能勝任上百個(gè)服務(wù)器節(jié)點(diǎn)的擴(kuò)展,并支持PB級(jí)的結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù)

Elasticsearch的相關(guān)概念

在elasticsearch中有幾個(gè)基本的概念,如節(jié)點(diǎn)、索引、文檔等等

Node 和 Cluster (節(jié)點(diǎn)和集群)

單個(gè)elasticsearch實(shí)例稱(chēng)之為一個(gè)節(jié)點(diǎn),而多個(gè)節(jié)點(diǎn)的組成稱(chēng)之為集群

Index (索引)

elasticsearch會(huì)索引所有的字段,經(jīng)過(guò)處理后寫(xiě)入一個(gè)反向索引。查找數(shù)據(jù)的時(shí)候直到查到該索引。
所以elasticsearch數(shù)據(jù)管理的頂層單位叫做索引,其實(shí)與mysql等數(shù)據(jù)庫(kù)的索引概念是一樣的。值得注意的是每一個(gè)索引名稱(chēng)必須為小寫(xiě)

Document (文檔)

索引里單條的數(shù)據(jù)記錄稱(chēng)之為文檔,由許多條文檔構(gòu)成一個(gè)索引
文檔使用json格式表示,同一個(gè)索引里的文檔不要求有相同的結(jié)構(gòu),但最好保持相同結(jié)構(gòu),這樣可以有效的提高搜索效率

Type (類(lèi)型)

文檔可以分組,例如product索引中,可以按價(jià)格分組,也可以按顏色分組。這種分組就叫做類(lèi)型,類(lèi)型是一個(gè)虛擬的邏輯分組,用來(lái)過(guò)濾文檔,類(lèi)似與數(shù)據(jù)庫(kù)中的表
不同的類(lèi)型應(yīng)該有相似的結(jié)構(gòu),例如id字段不能在一個(gè)組是字符串,在另一組為數(shù)值。這與關(guān)系型數(shù)據(jù)庫(kù)表的區(qū)別是一樣的。性質(zhì)完全不同的數(shù)據(jù)應(yīng)該存入不同的索引之中

注: ES 6版本只允許每個(gè)索引包含一個(gè)類(lèi)型, ES 7版本以移除類(lèi)型

Fields (字段)

每一個(gè)文檔都有一個(gè)類(lèi)似json的結(jié)構(gòu),其包含多個(gè)字段,每個(gè)字段都有其對(duì)應(yīng)的值,多個(gè)字段組成一個(gè)文檔
在ES中,文檔歸屬于一種類(lèi)型,而這些類(lèi)型存在于索引中,類(lèi)似的ES關(guān)系圖與關(guān)系型數(shù)據(jù)庫(kù)的對(duì)比為:

關(guān)系型數(shù)據(jù)庫(kù) -> 數(shù)據(jù)庫(kù) -> 表 -> 行 -> 字段
ES庫(kù) -> 索引 -> 類(lèi)型 -> 文檔 -> 字段
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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