Elasticsearch知識(shí)點(diǎn)整理(I)

Elasticsearch 文檔索引過(guò)程描述

1.協(xié)調(diào)節(jié)點(diǎn)默認(rèn)使用文檔ID參與計(jì)算(也支持通過(guò)routing)硕舆,以便為路由提供合適的分片秽荞。

shard = hash(document_id) % (num_of_primary_shards)

2.當(dāng)分片所在的節(jié)點(diǎn)接收到來(lái)自協(xié)調(diào)節(jié)點(diǎn)的請(qǐng)求后,會(huì)將請(qǐng)求寫(xiě)入到Memory Buffer抚官,然后定時(shí)(默認(rèn)是每隔1秒)寫(xiě)入到Filesystem Cache扬跋,這個(gè)從Momery Buffer到Filesystem Cache的過(guò)程就叫做refresh;

3.當(dāng)然在某些情況下揖盘,存在Momery Buffer和Filesystem Cache的數(shù)據(jù)可能會(huì)丟失弦聂,ES是通過(guò)translog的機(jī)制來(lái)保證數(shù)據(jù)的可靠性的逾柿。其實(shí)現(xiàn)機(jī)制是接收到請(qǐng)求后,同時(shí)也會(huì)寫(xiě)入到translog中朴上,當(dāng)Filesystem cache中的數(shù)據(jù)寫(xiě)入到磁盤(pán)中時(shí),才會(huì)清除掉卒煞,這個(gè)過(guò)程叫做flush痪宰。

4.在flush過(guò)程中,內(nèi)存中的緩沖將被清除,內(nèi)容被寫(xiě)入一個(gè)新段衣撬,段的fsync將創(chuàng)建一個(gè)新的提交點(diǎn)乖订,并將內(nèi)容刷新到磁盤(pán),舊的translog將被刪除并開(kāi)始一個(gè)新的translog具练。

5.flush觸發(fā)的時(shí)機(jī)是定時(shí)觸發(fā)(默認(rèn)30分鐘)或者translog變得太大(默認(rèn)為512M)時(shí)乍构。



Update和Delete實(shí)現(xiàn)原理

刪除和更新操作也是寫(xiě)操作。但是扛点,Elasticsearch中的文檔是不可變的(immutable)哥遮,因此不能刪除或修改。那么陵究,如何刪除/更新文檔呢昔善??

磁盤(pán)上的每個(gè)分段(segment)都有一個(gè).del文件與它相關(guān)聯(lián)。當(dāng)發(fā)送刪除請(qǐng)求時(shí)畔乙,該文檔未被真正刪除君仆,而是在.del文件中標(biāo)記為已刪除。此文檔可能仍然能被搜索到牲距,但會(huì)從結(jié)果中過(guò)濾掉返咱。當(dāng)分段合并時(shí)(我們將在后續(xù)的帖子中包括段合并),在.del文件中標(biāo)記為已刪除的文檔不會(huì)被包括在新的合并段中牍鞠。?

現(xiàn)在咖摹,我們來(lái)看看更新是如何工作的。創(chuàng)建新文檔時(shí)难述,Elasticsearch將為該文檔分配一個(gè)版本號(hào)萤晴。對(duì)文檔的每次更改都會(huì)產(chǎn)生一個(gè)新的版本號(hào)。當(dāng)執(zhí)行更新時(shí)胁后,舊版本在.del文件中被標(biāo)記為已刪除店读,并且新版本在新的分段中編入索引。舊版本可能仍然與搜索查詢(xún)匹配攀芯,但是從結(jié)果中將其過(guò)濾掉屯断。?

indexed/updated文檔后,我們希望執(zhí)行搜索請(qǐng)求侣诺。我們來(lái)看看如何在Elasticsearch中執(zhí)行搜索請(qǐng)求殖演。




Read的實(shí)現(xiàn)原理

讀操作由兩個(gè)階段組成:查詢(xún)階段(Query Phase)和獲取階段(Fetch Phase)

1.查詢(xún)階段(Query Phase)

????在此階段,協(xié)調(diào)節(jié)點(diǎn)將搜索請(qǐng)求路由到索引(index)中的所有分片(shards)(包括:主節(jié)點(diǎn)或副本)年鸳。分片獨(dú)立執(zhí)行搜索趴久,并根據(jù)相關(guān)性分?jǐn)?shù)創(chuàng)建一個(gè)優(yōu)先級(jí)排序結(jié)果(稍后我們將介紹相關(guān)性分?jǐn)?shù))。所有分片將匹配的文檔和相關(guān)分?jǐn)?shù)的文檔ID返回給協(xié)調(diào)節(jié)點(diǎn)搔确。協(xié)調(diào)節(jié)點(diǎn)創(chuàng)建一個(gè)新的優(yōu)先級(jí)隊(duì)列彼棍,并對(duì)全局結(jié)果進(jìn)行排序已添。可以有很多文檔匹配結(jié)果滥酥,但默認(rèn)情況下更舞,每個(gè)分片將前10個(gè)結(jié)果發(fā)送到協(xié)調(diào)節(jié)點(diǎn),協(xié)調(diào)創(chuàng)建優(yōu)先級(jí)隊(duì)列坎吻,從所有分片中分選結(jié)果并返回前10個(gè)匹配缆蝉。

2.獲取階段(Fetch Phase)

在協(xié)調(diào)節(jié)點(diǎn)對(duì)所有結(jié)果進(jìn)行排序,已生成全局排序的文檔列表后瘦真,它將從所有分片請(qǐng)求原始文檔刊头。?

所有的分片都會(huì)豐富文檔并將其返回到協(xié)調(diào)節(jié)點(diǎn)。?




搜索相關(guān)性(Search Relevance)

相關(guān)性由Elasticsearch給予搜索結(jié)果中返回的每個(gè)文檔的分?jǐn)?shù)確定诸尽。用于評(píng)分的默認(rèn)算法為tf / idf(術(shù)語(yǔ)頻率/逆文檔頻率)原杂。該術(shù)語(yǔ)頻率測(cè)量術(shù)語(yǔ)出現(xiàn)在文檔中的次數(shù)(更高頻率=更高的相關(guān)性),逆文檔頻率測(cè)量術(shù)語(yǔ)在整個(gè)索引中出現(xiàn)的頻率占索引中文檔總數(shù)的百分比(更高的頻率 ==較少的相關(guān)性)您机。最終得分是tf-idf分?jǐn)?shù)與其他因素(如詞語(yǔ)鄰近度(短語(yǔ)查詢(xún)))穿肄,術(shù)語(yǔ)相似度(用于模糊查詢(xún))等的組合。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末际看,一起剝皮案震驚了整個(gè)濱河市咸产,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌仲闽,老刑警劉巖脑溢,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異赖欣,居然都是意外死亡屑彻,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén)顶吮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)社牲,“玉大人,你說(shuō)我怎么就攤上這事云矫∩殴粒” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵让禀,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我陨界,道長(zhǎng)巡揍,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任菌瘪,我火速辦了婚禮腮敌,結(jié)果婚禮上阱当,老公的妹妹穿的比我還像新娘。我一直安慰自己糜工,他們只是感情好弊添,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著捌木,像睡著了一般油坝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上刨裆,一...
    開(kāi)封第一講書(shū)人閱讀 52,156評(píng)論 1 308
  • 那天澈圈,我揣著相機(jī)與錄音,去河邊找鬼帆啃。 笑死瞬女,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的努潘。 我是一名探鬼主播诽偷,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼疯坤!你這毒婦竟也來(lái)了渤刃?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤贴膘,失蹤者是張志新(化名)和其女友劉穎卖子,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體刑峡,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡洋闽,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了突梦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诫舅。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖宫患,靈堂內(nèi)的尸體忽然破棺而出刊懈,到底是詐尸還是另有隱情,我是刑警寧澤娃闲,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布虚汛,位于F島的核電站,受9級(jí)特大地震影響皇帮,放射性物質(zhì)發(fā)生泄漏卷哩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一属拾、第九天 我趴在偏房一處隱蔽的房頂上張望将谊。 院中可真熱鬧,春花似錦尊浓、人聲如沸栋齿。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)泉唁。三九已至亭畜,卻和暖如春拴鸵,著一層夾襖步出監(jiān)牢的瞬間蜗搔,已是汗流浹背聘芜。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留瞎饲,地道東北人企软。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓铅辞,卻偏偏與公主長(zhǎng)得像斟珊,于是被迫代替她去往敵國(guó)和親旨椒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子堵漱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

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