ElasticSearch 基本概念

ElasticSearch 是基于 Lucene 實(shí)現(xiàn)的開源、分布式挽牢、RESTful接口的全文搜索引擎。Elasticsearch還是一個(gè)分布式文檔數(shù)據(jù)庫禽拔,其中每個(gè)字段均是被索引的數(shù)據(jù)且可被搜索刘离,它能夠擴(kuò)展至數(shù)以百計(jì)的服務(wù)器存儲(chǔ)以及處理PB級(jí)的數(shù)據(jù)。它可以在很短的時(shí)間內(nèi)存儲(chǔ)睹栖、搜索和分析大量的數(shù)據(jù)硫惕。它通常作為具有復(fù)雜搜索場景情況下的核心發(fā)動(dòng)機(jī)。

1 Lucene

Lucene是一套用于全文檢索和搜索的開放源代碼程序庫野来,由Apache軟件基金會(huì)支持和提供恼除。
Lucene 官網(wǎng) https://lucene.apache.org/

2 倒排索引

倒排索引源于實(shí)際應(yīng)用根據(jù)屬性值來查找記錄。這種索引表中的每一項(xiàng)都包括一個(gè)屬性值和具有該屬性值的各記錄的地址曼氛。由于不是由記錄來確定屬性值缚柳,而是有屬性來確定記錄位置,因而成為倒排索引(inverted index)

3 索引詞 (term)

在ElasticSearch中索引詞(term) 是一個(gè)能夠被索引的精確值搪锣。索引詞是可以通過term 查詢進(jìn)行準(zhǔn)確的搜索

4 文本 (text)

文本是一段普通的非結(jié)構(gòu)化的文字秋忙。通常,文本會(huì)被分析成一個(gè)個(gè)的索引詞(term),存儲(chǔ)在Elasticsearch的索引庫中构舟。

為了讓文本能夠進(jìn)行搜索灰追,文本字段需要事先進(jìn)行分析;當(dāng)對(duì)文本中的關(guān)鍵詞進(jìn)行查詢的時(shí)候狗超,搜索引擎應(yīng)該根據(jù)搜索條件搜索出原文本弹澎。

5 分析(analysis)

分析是將文本轉(zhuǎn)換成索引詞的過程,分析的結(jié)果依賴于分詞器

比如:FOO BAR努咐、Foo-Bar和foo bar這幾個(gè)單詞有可能會(huì)被分析成相同的索引詞foo和bar苦蒿,這些索引詞存儲(chǔ)在Elasticsearch的索引庫中。當(dāng)用FoO:bAR進(jìn)行全文搜索的時(shí)候渗稍,搜索引擎根據(jù)匹配計(jì)算也能在索引庫中搜索出之前的內(nèi)容佩迟。這就是Elasticsearch的搜索分析。

6 集群(cluster)

集群由一個(gè)或多個(gè)節(jié)點(diǎn)組成竿屹,對(duì)外提供服務(wù)报强,對(duì)位提供索引和搜索功能

  • 不同集群通過不同的名字來區(qū)分,默認(rèn)名字elasticsearch
  • 通過修改文件修改拱燃,或者在命令行中 -E cluster.name= XXXX 進(jìn)行設(shè)定

7 節(jié)點(diǎn)(node)

一個(gè)節(jié)點(diǎn)是一個(gè)邏輯上獨(dú)立的服務(wù)秉溉,他是集群的一部分,可以存儲(chǔ)數(shù)據(jù),并參與集群的索引和搜索功能召嘶。

  • **Master node: **主節(jié)點(diǎn)父晶,只有主節(jié)點(diǎn)才能修改集群的狀態(tài)信息。集群狀態(tài)包括(所有節(jié)點(diǎn)信息弄跌;所有的索引和相關(guān)的Mapping與Setting信息甲喝;分片路由信息)

  • **Master-eligible node: **Master-eligible 可以參加選主流程嗎,成為主節(jié)點(diǎn)

  • Data Node: 保存數(shù)據(jù)的節(jié)點(diǎn)碟绑,負(fù)責(zé)保存分片數(shù)據(jù)俺猿。在數(shù)據(jù)擴(kuò)展上起到了至關(guān)重要的作用

  • **Coordinating Node: **負(fù)責(zé)接受Client 的請(qǐng)求,將請(qǐng)求發(fā)布到合適的節(jié)點(diǎn)格仲,最終把結(jié)果匯集到一起押袍,是每個(gè)節(jié)點(diǎn)默認(rèn)都起到Coordinating Node 的職責(zé)

  • Machine Learning Node 負(fù)責(zé)跑機(jī)器學(xué)習(xí)的任務(wù),用來做異常檢測凯肋,發(fā)出告警

8 分片 (shard)

分片是單個(gè)Lucene實(shí)例谊惭,這是Elasticsearch管理的比較底層的功能。索引是指向主分片和副本分片的邏輯空間

主分片:每個(gè)文檔都存儲(chǔ)在一個(gè)分片中侮东,當(dāng)你存儲(chǔ)一個(gè)文檔的時(shí)候圈盔,系統(tǒng)會(huì)首先存儲(chǔ)在主分片中悄雅,然后會(huì)復(fù)制到不同的副本中

副本分片:每一個(gè)分片有零個(gè)或多個(gè)副本。主要作用:增加高可用性(當(dāng)主分片失敗的時(shí)候众眨,可以從副本分片中選擇一個(gè)主分片)娩梨,提高性能(當(dāng)查詢的時(shí)候可以到主分片或者副本分片中進(jìn)行查詢)

為什么分片览徒,分片原因:

  • 允許水平分割擴(kuò)展數(shù)據(jù)
  • 允許分配和并行操作從而提高性能和吞吐量

9 路由(routing)

當(dāng)存儲(chǔ)一個(gè)文檔的時(shí)候,他會(huì)存儲(chǔ)在唯一的主分片中纽什,具體那個(gè)分片是通過散列值選擇友雳。

默認(rèn)情況下,這個(gè)值是由文檔的ID生成。如果文檔有一個(gè)指定的父文檔,則從父文檔ID中生成涕俗,該值可以在存儲(chǔ)文檔的時(shí)候進(jìn)行修改神帅。

10 復(fù)制 (replica)

解決整個(gè)集群的單點(diǎn)問題。當(dāng)網(wǎng)絡(luò)中某個(gè)節(jié)點(diǎn)出現(xiàn)問題的時(shí)候元镀,復(fù)制可以對(duì)故障進(jìn)行轉(zhuǎn)移霎桅,保證系統(tǒng)的高可用性

  • 一個(gè)復(fù)制分片不會(huì)存儲(chǔ)在同一個(gè)節(jié)點(diǎn)上

11 索引 (index)

索引是相同結(jié)果的文檔集合。

12 類型(type)

在索引中遇革,可以定義一個(gè)或者多個(gè)類型揭糕,類型是索引的邏輯分區(qū)

13 文檔(document)

文檔是存儲(chǔ)在Elasticsearch 中的一個(gè)JSON 格式的字符串。他就像在關(guān)系數(shù)據(jù)庫中表的一行揪漩。

每個(gè)存儲(chǔ)在索引中的一個(gè)文檔都有一個(gè)類型和一個(gè)ID吏口,每個(gè)文檔都是一個(gè)JSON對(duì)象,存儲(chǔ)了零個(gè)或者多個(gè)字段嫩海,或者鍵值對(duì)囚痴。

原始的JSON 文檔被存儲(chǔ)在 _source的字段中。當(dāng)搜索文檔時(shí)候默認(rèn)返回的就是這個(gè)字段奕谭。

14 字段(field)

文檔中包含零個(gè)或者多個(gè)字段痴荐,字段可以是一個(gè)簡單的值(例如字符串、整數(shù)难捌、日期),也可以是一個(gè)數(shù)組或?qū)ο蟮那短捉Y(jié)構(gòu)员淫。

字段類似于關(guān)系數(shù)據(jù)庫中表的列击敌。

每個(gè)字段都對(duì)應(yīng)一個(gè)字段類型,例如整數(shù)圣蝎,字符串衡瓶,對(duì)象等。字段還可以指定如何分析該字段的值步淹。

15 映射(mapping)

映射想關(guān)系數(shù)據(jù)庫中的表結(jié)構(gòu)诚撵,每一個(gè)索引都有一個(gè)映射,它定義了索引中的每一個(gè)字段類型澈驼,以及一個(gè)索引范圍的設(shè)置筛武。一個(gè)映射可以實(shí)現(xiàn)被定義,或者在第一次存儲(chǔ)文檔的時(shí)候自動(dòng)識(shí)別内边。

16 主鍵(ID)

ID是一個(gè)文件的唯一標(biāo)識(shí)待锈,如果在存庫的時(shí)候沒有提供ID,系統(tǒng)會(huì)自動(dòng)生成一個(gè)ID和屎,文檔的index/type/id必須是唯一的春瞬。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市随常,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌线罕,老刑警劉巖窃判,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件袄琳,死亡現(xiàn)場離奇詭異,居然都是意外死亡宛琅,警方通過查閱死者的電腦和手機(jī)逗旁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門片效,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人淀衣,你說我怎么就攤上這事÷耄” “怎么了只嚣?”我有些...
    開封第一講書人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵册舞,是天一觀的道長。 經(jīng)常有香客問我囚似,道長线得,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任募狂,我火速辦了婚禮,結(jié)果婚禮上祸穷,老公的妹妹穿的比我還像新娘性穿。我一直安慰自己需曾,他們只是感情好祈远,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開白布车份。 她就那樣靜靜地躺著,像睡著了一般出爹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上严就,一...
    開封第一講書人閱讀 49,816評(píng)論 1 290
  • 那天盈蛮,我揣著相機(jī)與錄音技矮,去河邊找鬼。 笑死袒炉,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的我磁。 我是一名探鬼主播驻襟,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼郁副!你這毒婦竟也來了豌习?” 一聲冷哼從身側(cè)響起拔疚,我...
    開封第一講書人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤稚失,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后句各,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體憨琳,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡篙螟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年问拘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绪杏。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蕾久,死狀恐怖拌夏,靈堂內(nèi)的尸體忽然破棺而出僧著,到底是詐尸還是另有隱情盹愚,我是刑警寧澤站故,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站愈腾,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏虱黄。R本人自食惡果不足惜寸爆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一盐欺、第九天 我趴在偏房一處隱蔽的房頂上張望冗美。 院中可真熱鬧析二,春花似錦粉洼、人聲如沸属韧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锅棕。三九已至,卻和暖如春裸燎,著一層夾襖步出監(jiān)牢的瞬間泼疑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來泰國打工移稳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留氓辣,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓几蜻,卻偏偏與公主長得像,于是被迫代替她去往敵國和親梭稚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子絮吵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348