Elasticsearch數(shù)據(jù)檢索流程

系列文字 Elasticsearch集群架構(gòu)&&如何保證分片數(shù)據(jù)一致性
本文主要分享ES的數(shù)據(jù)查詢(xún)流程
Elasticsearch的數(shù)據(jù)檢索流程涉及多個(gè)步驟千康,從客戶(hù)端請(qǐng)求到最終返回結(jié)果,底層實(shí)現(xiàn)依賴(lài)于其分布式搜索引擎的架構(gòu)世吨。以下是Elasticsearch數(shù)據(jù)檢索的基本流程及其底層實(shí)現(xiàn):

數(shù)據(jù)檢索流程

分為根據(jù)ID檢索和字段檢索叹卷。

根據(jù)ID檢索流程
根據(jù) doc id 檢索流程.png
  1. 客戶(hù)端發(fā)送put請(qǐng)求到任意節(jié)點(diǎn)屯吊,該節(jié)點(diǎn)將作為協(xié)調(diào)節(jié)點(diǎn)惑灵。
  2. 使用 doc id 確定數(shù)據(jù)所在主分片「id 到分片的映射是基于 doc id 的哈希值和集群分片數(shù)量計(jì)算的」路由到 shard 所在節(jié)點(diǎn)柴信。
  3. 將數(shù)據(jù)返回協(xié)調(diào)節(jié)點(diǎn)。
  4. 協(xié)調(diào)節(jié)點(diǎn)處理結(jié)果返回客戶(hù)端彤侍。如果啟動(dòng)了緩存肠缨,在協(xié)調(diào)節(jié)點(diǎn)命中緩存,會(huì)將緩存結(jié)果直接返回客戶(hù)端盏阶。
根據(jù)字段檢索
根據(jù)query 字段檢索流程.png
  1. 客戶(hù)端發(fā)送put請(qǐng)求到任意節(jié)點(diǎn)晒奕,
    該節(jié)點(diǎn)將作為協(xié)調(diào)節(jié)點(diǎn)。
  2. 協(xié)調(diào)節(jié)點(diǎn)進(jìn)行 query 解析,根據(jù)索引及解析后的數(shù)據(jù)脑慧,確定相關(guān)分分片惠窄,并將查詢(xún)分發(fā)到相關(guān)分片。
  3. 相關(guān)分片的數(shù)據(jù)節(jié)點(diǎn)執(zhí)行本地查詢(xún)漾橙,把符合條件的數(shù)據(jù)id、排序字段等信息返回給協(xié)調(diào)節(jié)點(diǎn)楞卡。
  4. 各分片數(shù)據(jù)將 TopN 數(shù)據(jù)返回協(xié)調(diào)節(jié)點(diǎn)霜运。
    協(xié)調(diào)節(jié)點(diǎn)將數(shù)據(jù)合并排序整理后得到最終TopN的id。
  5. 各分片根據(jù) id 獲取數(shù)據(jù)蒋腮,將數(shù)據(jù)返回協(xié)調(diào)節(jié)點(diǎn)淘捡。
  6. 協(xié)調(diào)節(jié)點(diǎn)將檢索結(jié)果返回客戶(hù)端。

檢索底層實(shí)現(xiàn)

倒排索引

Elasticsearch使用倒排索引來(lái)實(shí)現(xiàn)快速搜索池摧。每個(gè)字段都被分析并存儲(chǔ)為一個(gè)倒排索引焦除,其中包含詞條(Term),詞條對(duì)應(yīng)的文檔列表作彤,以及詞條在文檔中的位置膘魄。

分片和副本

索引被分成多個(gè)主分片,每個(gè)主分片可以有多個(gè)副分片竭讳。查詢(xún)操作會(huì)在所有相關(guān)的主分片及其副本上執(zhí)行创葡。

并行處理

查詢(xún)?cè)诙鄠€(gè)分片上并行執(zhí)行,以提高性能绢慢。

分布式緩存

Elasticsearch使用兩種類(lèi)型的緩存:查詢(xún)緩存和文檔緩存灿渴。查詢(xún)緩存存儲(chǔ)了常見(jiàn)查詢(xún)的結(jié)果,而文檔緩存存儲(chǔ)了最近訪問(wèn)的文檔胰舆。

分布式執(zhí)行

查詢(xún)操作在所有相關(guān)的分片上分布式執(zhí)行骚露,每個(gè)分片生成一個(gè)局部排序的結(jié)果集。

聚合操作

對(duì)于聚合查詢(xún)缚窿,Elasticsearch會(huì)在每個(gè)分片上執(zhí)行局部聚合棘幸,然后將這些局部聚合結(jié)果發(fā)送回協(xié)調(diào)節(jié)點(diǎn)進(jìn)行全局聚合。

故障轉(zhuǎn)移和容錯(cuò)

如果某個(gè)分片的節(jié)點(diǎn)不可用滨攻,Elasticsearch會(huì)使用副本分片來(lái)處理查詢(xún)够话。

優(yōu)化和簡(jiǎn)化

Elasticsearch的查詢(xún)優(yōu)化器會(huì)嘗試簡(jiǎn)化查詢(xún),并選擇最有效的執(zhí)行計(jì)劃光绕。

結(jié)果的序列化和傳輸

最終結(jié)果在協(xié)調(diào)節(jié)點(diǎn)上進(jìn)行序列化女嘲,并通過(guò)HTTP或其他協(xié)議發(fā)送回客戶(hù)端。

Elasticsearch的查詢(xún)流程和底層實(shí)現(xiàn)非常復(fù)雜诞帐,涉及到大量的優(yōu)化和并行處理機(jī)制欣尼,以確保在大規(guī)模數(shù)據(jù)集上也能提供快速和準(zhǔn)確的搜索結(jié)果。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市愕鼓,隨后出現(xiàn)的幾起案子钙态,更是在濱河造成了極大的恐慌,老刑警劉巖菇晃,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件册倒,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡磺送,警方通過(guò)查閱死者的電腦和手機(jī)驻子,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)估灿,“玉大人崇呵,你說(shuō)我怎么就攤上這事∠谠” “怎么了域慷?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)汗销。 經(jīng)常有香客問(wèn)我犹褒,道長(zhǎng),這世上最難降的妖魔是什么大溜? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任化漆,我火速辦了婚禮,結(jié)果婚禮上钦奋,老公的妹妹穿的比我還像新娘座云。我一直安慰自己,他們只是感情好付材,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布朦拖。 她就那樣靜靜地躺著,像睡著了一般厌衔。 火紅的嫁衣襯著肌膚如雪璧帝。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,713評(píng)論 1 312
  • 那天富寿,我揣著相機(jī)與錄音睬隶,去河邊找鬼。 笑死页徐,一個(gè)胖子當(dāng)著我的面吹牛苏潜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播变勇,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼恤左,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起飞袋,我...
    開(kāi)封第一講書(shū)人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤戳气,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后巧鸭,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體瓶您,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年纲仍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了览闰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡巷折,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出崖咨,到底是詐尸還是另有隱情锻拘,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布击蹲,位于F島的核電站署拟,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏歌豺。R本人自食惡果不足惜推穷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望类咧。 院中可真熱鬧馒铃,春花似錦糖声、人聲如沸斟览。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)穷蛹。三九已至劫流,卻和暖如春踪危,著一層夾襖步出監(jiān)牢的瞬間憋活,已是汗流浹背堕虹。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工卧晓, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人赴捞。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓逼裆,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親螟炫。 傳聞我的和親對(duì)象是個(gè)殘疾皇子波附,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容