成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

談Elasticsearch原理

IT那活兒 / 1978人閱讀
談Elasticsearch原理

點(diǎn)擊上方“IT那活兒”,關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了?。?!

前  言
大家都知道,ES是一個(gè)基于restful web接口并且構(gòu)建在Apache Lucene之上的開源分布式搜索引擎。
今天在某乎上看到一篇關(guān)于Elasticsearch(以下簡(jiǎn)稱ES)原理的介紹,感覺非常有意思,在這里和大家一起分享一下。

01


倒排索引思想


引申是說出帶“前”的詩(shī)句,很多人都會(huì)想不起來有哪些詩(shī)句,但是如果讓說出靜夜思這首詩(shī)的內(nèi)容,很多人都會(huì)脫口而出“床前明月光…”,但是為什么都會(huì)的詩(shī)句換一種問法就說不出來了呢,原來是我們的腦子里沒有建立“倒排索引”。
平時(shí)大家背詩(shī)都是先記錄詩(shī)名、作者然后是詩(shī)句的內(nèi)容,這就是我們腦子里建立的“索引”。
但是讓說出帶“前”字的詩(shī)句,由于沒有索引,你只能遍歷腦海中所有詩(shī)詞,當(dāng)你的腦海中詩(shī)詞量大的時(shí)候,就很難在短時(shí)間內(nèi)得到結(jié)果了。
那么什么是倒排索引呢?
倒排索引又叫反向索引,比如這樣建立索引。
如果這樣建立索引,那么讓說出帶“前”的詩(shī)句,就能很快想到。這就是倒排索引,以詩(shī)句中的一些關(guān)鍵字作為索引,來找到詩(shī)句。

02


搜索引擎原理


但是,可能大家會(huì)產(chǎn)生一個(gè)疑問,靜夜思這首詩(shī),總共有20個(gè)字,那么這20個(gè)字都可以作為關(guān)鍵字來建立索引。
本來正向只有一個(gè)索引,反向確有20個(gè)索引,數(shù)據(jù)量會(huì)增加很多。
那么怎么辦呢?
這就說涉及到了數(shù)據(jù)壓縮,在建立反向索引的時(shí)候不需要索引倒詩(shī)句,只需要索引到詩(shī)名就行。比如這么建立索引:
value不存詩(shī)句改存詩(shī)名,數(shù)據(jù)量會(huì)少很多。通過關(guān)鍵字來建立反向索引,這種搜索引擎的原理和某度、某歌有些類似。都是根據(jù)一個(gè)內(nèi)容來找到想要的文章。只不過、流程稍復(fù)雜,多了網(wǎng)頁(yè)爬取、停頓詞過濾等。
網(wǎng)頁(yè)爬取就是所謂的爬蟲,停頓次過濾是指如“的”、“而”之類的本身沒有多大意義的詞,建立索引的時(shí)候就不需要考慮他們了,相當(dāng)于所謂的“分詞”。
搜索引擎都是對(duì)文章進(jìn)行分詞后,再按關(guān)鍵詞建立倒排索引。

03


ES數(shù)據(jù)存儲(chǔ)原理


有人要問了,我自己怎么實(shí)現(xiàn)一個(gè)搜索引擎呢,業(yè)界其實(shí)已經(jīng)有“輪子”了,有一個(gè)叫Lucene的庫(kù),用它就可以很方便的建立倒排索引。
但是 Lucene 還是一個(gè)庫(kù),必須要懂一點(diǎn)搜索引擎原理的人才能用的好,所以后來又有人基于 Lucene 進(jìn)行封裝,寫出了 ES。
ES將對(duì)搜索引擎的操作都封裝成了restful的api,通過http請(qǐng)求就能對(duì)其進(jìn)行操作。同時(shí)還考慮了海量數(shù)據(jù),實(shí)現(xiàn)了分布式,是一個(gè)可以存海量數(shù)據(jù)的分布式搜索引擎。
那么數(shù)據(jù)怎么存儲(chǔ)到ES里的呢,通過下圖的比較,以加深大家對(duì)ES的認(rèn)識(shí)。
比如一首詩(shī),有詩(shī)題、作者、朝代、字?jǐn)?shù)、詩(shī)內(nèi)容等字段,那么首先,我們可以建立一個(gè)名叫 Poems 的索引,然后創(chuàng)建一個(gè)名叫 Poem 的類型,類型是通過 Mapping 來定義每個(gè)字段的類型。
比如詩(shī)題、作者、朝代都是 Keyword 類型,詩(shī)內(nèi)容是 Text 類型,而字?jǐn)?shù)是 Integer 類型,最后就是把數(shù)據(jù)組織成 Json 格式存放進(jìn)去了。
類型相當(dāng)于表結(jié)構(gòu)的描述,文檔以json格式描述一行數(shù)據(jù)。

04


ES分布式原理


ES中的數(shù)據(jù)是怎么進(jìn)行分布式存儲(chǔ)的呢?
其實(shí),ES是會(huì)對(duì)數(shù)據(jù)進(jìn)行切分,同時(shí)每個(gè)分片會(huì)保存多個(gè)副本,其原因和 HDFS 是一樣的,都是為了保證分布式環(huán)境下的高可用。
因此,ES也是master-slave架構(gòu)的,在ES中,節(jié)點(diǎn)是對(duì)等的,節(jié)點(diǎn)間會(huì)通過自己的一些規(guī)則選取集群的 Master,Master 會(huì)負(fù)責(zé)集群狀態(tài)信息的改變,并同步給其他節(jié)點(diǎn)。
比如建立一個(gè)索引,請(qǐng)求先發(fā)送到mater,mater建立索引后,講集群狀態(tài)同步到slave。
注意,只有建立索引和類型需要經(jīng)過 Master,數(shù)據(jù)的寫入有一個(gè)簡(jiǎn)單的 Routing 規(guī)則,可以 Route 到集群中的任意節(jié)點(diǎn),所以數(shù)據(jù)寫入壓力是分散在整個(gè)集群的。


本文作者:葉緒瑞

本文來源:IT那活兒(上海新炬王翦團(tuán)隊(duì))

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129639.html

相關(guān)文章

  • 跳槽季如何快速全面復(fù)習(xí)面試題

    摘要:排序算法和集合工具類排序算法和集合工具類。面試官總是問排序算法也不是在難為你,而是在考察你的編程功底。你首先要理解多線程不僅僅是和那么簡(jiǎn)單,整個(gè)并發(fā)包下面的工具都是在為多線程服務(wù)。 去年的這個(gè)時(shí)候樓主通過兩個(gè)月的復(fù)習(xí)拿到了阿里巴巴的 offer,有一些運(yùn)氣,也有一些心得,借著跳槽季來臨特此分享出來。簡(jiǎn)單梳理一下我的復(fù)習(xí)思路,同時(shí)也希望和大家一起交流討論,一起學(xué)習(xí),如果不對(duì)之處歡迎指正一...

    keke 評(píng)論0 收藏0
  • 兩年了,我寫了這些干貨!

    摘要:開公眾號(hào)差不多兩年了,有不少原創(chuàng)教程,當(dāng)原創(chuàng)越來越多時(shí),大家搜索起來就很不方便,因此做了一個(gè)索引幫助大家快速找到需要的文章系列處理登錄請(qǐng)求前后端分離一使用完美處理權(quán)限問題前后端分離二使用完美處理權(quán)限問題前后端分離三中密碼加鹽與中異常統(tǒng)一處理 開公眾號(hào)差不多兩年了,有不少原創(chuàng)教程,當(dāng)原創(chuàng)越來越多時(shí),大家搜索起來就很不方便,因此做了一個(gè)索引幫助大家快速找到需要的文章! Spring Boo...

    huayeluoliuhen 評(píng)論0 收藏0
  • Elasticsearch Lucene 數(shù)據(jù)寫入原理 | ES 核心篇

    摘要:因?yàn)榈古潘饕蚍謾C(jī)制全文檢索原理分詞原理等等,這些都是不會(huì)過時(shí)的技術(shù)。中,單個(gè)倒排索引文件稱為。其中有一個(gè)文件,記錄了所有的信息,稱為文檔新寫入時(shí),會(huì)生成新的。過程上個(gè)過程中在文件系統(tǒng)緩存中,會(huì)有意外故障文檔丟失。寫入次怕后,清空。 前言 最近 TL 分享了下 《Elasticsearch基礎(chǔ)整理》,蹭著這個(gè)機(jī)會(huì)。寫個(gè)小文鞏固下,本文主要講 ES -> Lucene的底層結(jié)構(gòu),然后詳細(xì)...

    wums 評(píng)論0 收藏0
  • 7月第4周業(yè)務(wù)風(fēng)控關(guān)注 | 廣電總局下發(fā)《關(guān)于加強(qiáng)網(wǎng)上話(訪)類節(jié)目管理的通知》

    摘要:今日,宣布與美國(guó)監(jiān)管部門達(dá)成和解。十一結(jié)束侵犯兒童隱私調(diào)查谷歌或罰款萬美元美國(guó)聯(lián)邦貿(mào)易委員會(huì)已經(jīng)加大罰款力度,重拳打擊隱私泄漏。 易盾業(yè)務(wù)風(fēng)控周報(bào)每周報(bào)道值得關(guān)注的安全技術(shù)和事件,包括但不限于內(nèi)容安全、移動(dòng)安全、業(yè)務(wù)安全和網(wǎng)絡(luò)安全,幫助企業(yè)提高警惕,規(guī)避這些似小實(shí)大、影響業(yè)務(wù)健康發(fā)展的安全風(fēng)險(xiǎn)。 ?showImg(https://segmentfault.com/img/bVbvDbN...

    DDreach 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<