国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

談Elasticsearch原理

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

點擊上方“IT那活兒”,關注后了解更多內容,不管IT什么活兒,干就完了!!!

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

01


倒排索引思想


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

02


搜索引擎原理


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

03


ES數據存儲原理


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

04


ES分布式原理


ES中的數據是怎么進行分布式存儲的呢?
其實,ES是會對數據進行切分,同時每個分片會保存多個副本,其原因和 HDFS 是一樣的,都是為了保證分布式環境下的高可用。
因此,ES也是master-slave架構的,在ES中,節點是對等的,節點間會通過自己的一些規則選取集群的 Master,Master 會負責集群狀態信息的改變,并同步給其他節點。
比如建立一個索引,請求先發送到mater,mater建立索引后,講集群狀態同步到slave。
注意,只有建立索引和類型需要經過 Master,數據的寫入有一個簡單的 Routing 規則,可以 Route 到集群中的任意節點,所以數據寫入壓力是分散在整個集群的。


本文作者:葉緒瑞

本文來源:IT那活兒(上海新炬王翦團隊)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129639.html

相關文章

  • 跳槽季如何快速全面復習面試題

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

    keke 評論0 收藏0
  • 兩年了,我寫了這些干貨!

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

    huayeluoliuhen 評論0 收藏0
  • Elasticsearch Lucene 數據寫入原理 | ES 核心篇

    摘要:因為倒排索引打分機制全文檢索原理分詞原理等等,這些都是不會過時的技術。中,單個倒排索引文件稱為。其中有一個文件,記錄了所有的信息,稱為文檔新寫入時,會生成新的。過程上個過程中在文件系統緩存中,會有意外故障文檔丟失。寫入次怕后,清空。 前言 最近 TL 分享了下 《Elasticsearch基礎整理》,蹭著這個機會。寫個小文鞏固下,本文主要講 ES -> Lucene的底層結構,然后詳細...

    wums 評論0 收藏0
  • 7月第4周業務風控關注 | 廣電總局下發《關于加強網上話(訪)類節目管理的通知》

    摘要:今日,宣布與美國監管部門達成和解。十一結束侵犯兒童隱私調查谷歌或罰款萬美元美國聯邦貿易委員會已經加大罰款力度,重拳打擊隱私泄漏。 易盾業務風控周報每周報道值得關注的安全技術和事件,包括但不限于內容安全、移動安全、業務安全和網絡安全,幫助企業提高警惕,規避這些似小實大、影響業務健康發展的安全風險。 ?showImg(https://segmentfault.com/img/bVbvDbN...

    DDreach 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<