<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 索引段數據的統計 <div style="text-indent:2em;"> <p>在<i>第3章 索引底層控制</i>中 <i>控制段合并</i> 一節中,我們探討了調整Apache Lucene索引段合并過程來滿足業務需求的可能性。此外,在<i>第6章 應對突發事件</i>的<i>當I/O過于繁忙——節流功能詳解</i>一節中,我們將討論更多功能的參數配置。然而,為了了解需要調整哪些方面,至少先得看看索引或者索引分片中索引段的結構。 </p> <h4>段操作相關的API介紹</h4> <p>為了更深入地了解Lucene的索引段,ElasticSearch提供了段操作相關的API,通過在執行的HTTP GET請求中附帶\_segments REST端點,就可以調用相關的API了。比如,我們想了解集群分片中的所有的段信息,可以執行如下的命令: <blockquote>curl -XGET 'localhost:9200/_segments'</blockquote> 如果想查看mastering索引的段信息,就應該執行如下的命令: <blockquote>curl -XGET 'localhost:9200/mastering/_segments'</blockquote> 我們也可以同時查看多個索引的段信息,通過如下的命令即可: <blockquote>curl -XGET 'localhost:9200/mastering,books/_segments'</blockquote> </p> <h4>返回信息</h4> <p>調用segments API的返回信息都是基于分片的。這是因為我們的索引都是由一個或多個分片(以及分片副本)組成,而且眾所周知每個分片都是一個完整的Apache Lucene的物理索引。我們假定我們有一個名為mastering的索引,而且索引中有一些文檔。在索引創建時,我們已經指定索引由單個分片構成,而且沒有分片副本:由于只是用于測試的索引,這樣做沒有什么問題。我們來看一下,執行如下的命令后,索引段信息會是什么樣: <blockquote>curl -XGET 'localhost:9200/_segments?pretty'</blockquote> 返回的JSON格式信息如下(有部分刪減): <blockquote> { "ok" : true, "_shards" : { "total" : 1, "successful" : 1, "failed" : 0 }, "indices" : { "mastring" : { "shards" : { "0" : [ { "routing" : { "state" : "STARTED", "primary" : true, "node" : "Cz4RFYP5RnudkXzSwe-WGw" }, "num\_committed\_segments" : 1, "num\_search\_segments" : 8, "segments" : { "_0" : { "generation" : 0, "num_docs" : 62, "deleted_docs" : 0, "size" : "5.7kb", "size\_in\_bytes" : 5842, "committed" : true, "search" : true, "version" : "4.3", "compound" : false }, ... "_7" : { "generation" : 7, "num_docs" : 1, "deleted_docs" : 0, "size" : "1.4kb", "size\_in_bytes" : 1482, "committed" : false, "search" : true, "version" : "4.3", "compound" : false } } } ] } } } } </blockquote> 我們可以看到,ElasticSearch返回了大量可供分析的信息。最頂層的息是索引名稱和和分片。在本例中,通過返回信息可以看到,我們有一個編號為0的分片,該分片已經啟動而且正在運行("state" : "STARTED" ) ,該分片是一個主分片 ("primary" : true) ,該分片位于id為 Cz4RFYP5RnudkXzSwe-WGw的節點上。接下來的信息是關于已提交段的數量(通過num\_commited\_segments屬性)和搜索段的數量(num\_search\_segments屬性)。已提交段表示該段上面運行了一個提交的命令,即段數據已經持久化到硬盤,而且是只讀的了。搜索段即可用于搜索的段。接下來是一系列的段信息,每個段中包含的信息如下: <ul> <li>number:該屬性為段指定了一個編號,作為多個段分組時得到的JSON對象的名稱。(比如,\_0,\_1,等等)</li> <li>generation:該屬性指定的段在索引中屬于第幾代,用一個整數來表示段的“老年化”程度。比如,第一個創建的段就是第0代,隨后創建的段就是第1代,以此類推。</li> <li>num_docs:該屬性表明該段中索引的文檔數。</li> <li>deleted_docs:該屬性表示該段中被標記為刪除的文檔數。這些標記為刪除的文檔將在段合并的時候被真正地刪除。</li> <li>size:該屬性表明段在硬盤上占用的空間大小。</li> <li>size\_in\_bytes:該屬性表明段的大小用byte來表示時的數值。</li> <li>committed: 如果段已經提交,則該屬性值為true;否則該屬性值為false.</li> <li>search:該屬性表示可搜索段的個數。</li> <li>version:該屬性表示創建索引時使用的Lucene的版本。邊注:盡管每個特定版本的ElasticSearch都只使用特定版本的Lucene,但是也是可能發生不同的索引段由不同的Lucene版本創建這一情況。像升級ElasticSearch版本,而且正好兩個版本的ElasticSearch使用了不同版本的Lucene時,就會出現上面的情況。面對這種情況,舊版本的索引段會在索引合并操作時進行重寫操作。</li> <li>compound:該屬性指定了段的格式是否是組合的(所有的段信息都存儲在一個文件)</li> </ul> </p> <h4>段信息可視化</h4> <p>當看到segments API返回的JSON格式的文本信息時,我們大腦中冒出的第一個想法可能是:如果信息是可視化的,那就很直觀明了了。如果想實現這種想法,隨時可以自己去做。現在已經有一個現成的名為SegmentSpy的插件(https://github.com/polyfractal/elasticsearch-segmentspy )利用我們前面提到的API實現了段信息的可視化功能。</p> <p>安裝該插件后,將Web瀏覽器指向到http://localhost:9200/_plugin/segmentspy/ ,然后選擇目標索引,我們就可以看到類似如下的屏幕截圖 </p> <center><img src="../54-segments.png"/> </center> <p>正如讀者所見,該插件將segments API返回的信息進行了可視化的操作,這樣的話想查看段信息時就能夠用得上了。只是該插件沒有解析ElasticSearch返回的JSON對象中的所有信息。 </p> </div>
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看