<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      內存吞金獸(Elasticsearch)的那些事兒 -- 架構&三高保證

      系列目錄

      內存吞金獸(Elasticsearch)的那些事兒 -- 認識一下

      內存吞金獸(Elasticsearch)的那些事兒 -- 數據結構及巧妙算法

      內存吞金獸(Elasticsearch)的那些事兒 -- 架構&三高保證

      內存吞金獸(Elasticsearch)的那些事兒 -- 寫入&檢索原理

      內存吞金獸(Elasticsearch)的那些事兒 -- 常見問題痛點及解決方案

       

      架構圖

       

       

      Gateway

      代表ElasticSearch索引的持久化存儲方式。

      在Gateway中,ElasticSearch默認先把索引存儲在內存中,然后當內存滿的時候,再持久化到Gateway里。當ES集群關閉或重啟的時候,它就會從Gateway里去讀取索引數據。比如LocalFileSystem和HDFS、AS3等。

      DistributedLucene Directory

      Lucene里的一些列索引文件組成的目錄。它負責管理這些索引文件。包括數據的讀取、寫入,以及索引的添加和合并等。

      River

      代表是數據源。是以插件的形式存在于ElasticSearch中。 

      Mapping

      映射的意思,非常類似于靜態語言中的數據類型。比如我們聲明一個int類型的變量,那以后這個變量只能存儲int類型的數據。

         eg:比如我們聲明一個double類型的mapping字段,則只能存儲double類型的數據。

      Mapping不僅是告訴ElasticSearch,哪個字段是哪種類型。還能告訴ElasticSearch如何來索引數據,以及數據是否被索引到等。

      Search Moudle

       搜索模塊

      Index Moudle

       索引模塊

      Disvcovery

           主要是負責集群的master節點發現。比如某個節點突然離開或進來的情況,進行一個分片重新分片等。

        (Zen)發現機制默認的實現方式是單播和多播的形式,同時也支持點對點的實現。以插件的形式存在EC2。

         一個基于p2p的系統,它先通過廣播尋找存在的節點,再通過多播協議來進行節點之間的通信,同時也支持點對點的交互。

      Scripting

         腳本語言。包括很多。如mvel、js、python等。   

         定制化功能非常便捷,但有性能問題

      Transport

          代表ElasticSearch內部節點,代表跟集群的客戶端交互。包括 Thrift、Memcached、Http等協議

        

      RESTful Style API

         通過RESTful方式來實現API編程。

       

      3rd plugins

        第三方插件,(想象一下idea或vscode的插件

      Java(Netty)

        開發框架。其內部使用netty實現

      JMX

       監控

       

      部署節點

      • master
      • index node(也是coordinating node
      • coordinating node

       

      三高保證

       

       

       

      1. 一個es集群會有多個es節點
      2. 在眾多的節點中,其中會有一個Master Node,主要負責維護索引元數據、負責切換主分片和副本分片身份等工作,如果主節點掛了,會選舉出一個新的主節點
        1. 如果某個節點掛了,Master Node就會把對應的副本分片提拔為主分片,這樣即便節點掛了,數據就不會丟。
      3. es最外層的是Index(相當于數據庫 表的概念);一個Index的數據我們可以分發到不同的Node上進行存儲,這個操作就叫做分片
        1. 比如現在我集群里邊有4個節點,我現在有一個Index,想將這個Index在4個節點上存儲,那我們可以設置為4個分片。這4個分片的數據合起來就是Index的數據
        2. 分片會有主分片和副本分片之分(防止某個節點宕機,保證高可用)
        3. Index需要分為多少個分片和副本分片都是可以通過配置設置的

      為什么需要分片?

       

        • 如果一個Index的數據量太大,只有一個分片,那只會在一個節點上存儲,隨著數據量的增長,一個節點未必能把一個Index存儲下來。
        • 多個分片,在寫入或查詢的時候就可以并行操作(從各個節點中讀寫數據,提高吞吐量)

      分詞器:

      在分詞前我們要先明確字段是否需要分詞,不需要分詞的字段將type設置為keyword,可以節省空間和提高寫性能。

      1)es的內置分詞器

      常用的三種分詞:Standard AnalyzerSimple Analyzerwhitespace Analyzer

      standard 是默認的分析器,英文會按照空格切分,同時大寫轉小寫,中文會按照每個詞切分

      simple 先按照空格分詞,英文大寫轉小寫,不是英文不再分詞

      Whitespace Analyzer  先按照空格分詞,不是英文不再分詞,英文不再轉小寫

       

      2)第三方分詞器

      es內置很多分詞器,但是對中文分詞并不友好,例如使用standard分詞器對一句中文話進行分詞,會分成一個字一個字的。這時可以使用第三方的Analyzer插件,分別是HanLP,IK,Pinyin分詞器三種;

      • HanLP-面向生產環境的自然語言處理工具包,支持有多重分詞配置

             兩個官網分詞例子測試效果,分詞效果較內置的分詞有很大明顯,可以支持中文的詞語分詞;

       

       

       

       

            

      • IK分詞器:

               可以根據粒度拆分

          ik_smart: 會做最粗粒度的拆分

          ik_max_word: 會將文本做最細粒度的拆分

             如果是最細粒度,我是中國人,會被分詞為我,是,中國人,中國,國人,相對于Hanlp的分詞更加準確和多樣;

      • PinYin

             會對特定的信息進行分詞,對用戶搜索有更好的體驗,該分詞會對漢字的首字母進行分詞,例如劉德華,會被分詞為ldh,張學友,會被分詞為zxy,用戶根據拼音首字母就可以搜索出對應的特定信息。

       

      posted @ 2021-08-25 11:43  房上的貓  閱讀(479)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产在热线精品视频99公交| 久久精品国产久精国产| 亚洲日韩VA无码中文字幕| 女同另类激情在线三区| 日韩深夜免费在线观看| 欧美性群另类交| 亚洲午夜性猛春交XXXX| 丰满岳妇乱一区二区三区| 日本一区不卡高清更新二区 | 国产精品综合av一区二区| 中文字幕在线看视频一区二区三区| 成人片黄网站色大片免费毛片| 国产乱码精品一区二三区| 国产精品色悠悠在线观看| 无码一区二区波多野结衣播放搜索| 新野县| 成人av专区精品无码国产| 自拍偷拍一区二区三区四| 亚洲精品一区久久久久一品av| xxxx丰满少妇高潮| 亚洲精品99久久久久久欧美版| 久久精品国产91精品亚洲| 亚洲天堂伊人久久a成人| 国产精品午夜av福利| 国产免费一区二区三区在线观看| 99久久er热在这里只有精品99| 精品精品亚洲高清a毛片| 99热门精品一区二区三区无码| av在线播放无码线| 老熟妇乱子交视频一区| 亚洲精品国模一区二区| 少妇裸交aa大片| 大陆精大陆国产国语精品| 人妻av无码一区二区三区| 亚洲中文字幕第二十三页| 精品国产一区二区三区久| 337p粉嫩大胆色噜噜噜| 深夜福利资源在线观看| 欧美性潮喷xxxxx免费视频看| 免费无码黄网站在线观看| 么公的好大好硬好深好爽视频|