欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

elasticsearch索引index之merge底層機制的合并講解

 更新時間:2022年04月22日 10:41:07   作者:zziawan  
這篇文章主要為大家介紹了elasticsearch索引index之merge底層機制的合并,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

merge是lucene的底層機制,merge過程會將index中的segment進行合并,生成更大的segment,提高搜索效率。

segment是lucene索引的一種存儲結(jié)構(gòu),每個segment都是一部分數(shù)據(jù)的完整索引,它是lucene每次flush或merge時候形成。

每次flush就是將內(nèi)存中的索引寫出一個獨立segment的過程。所以隨著數(shù)據(jù)的不斷增加,會形成越來越多的segment。

因為segment是不可變的,刪除操作不會改變segment內(nèi)部數(shù)據(jù),只是會在另外的地方記錄某些數(shù)據(jù)刪除,這樣可能會導(dǎo)致segment中存在大量無用數(shù)據(jù)。

搜索時,每個segment都需要一個reader來讀取里面的數(shù)據(jù),大量的segment會嚴重影響搜索效率。

而merge過程,會將小的segment寫到一起形成一個大的segment,減少其數(shù)量。同時重寫過程會拋棄那些已經(jīng)刪除的數(shù)據(jù)。因此segment的merge是有利于查詢效率的。

elasticsearch的merge其實就是lucene的merge機制。merge過程是lucene有一個后臺線程,它會根據(jù)merge策略來決定是否進行merge,一旦merge的條件滿足,就會啟動后臺merge。

merge策略分為兩種,這也是大多數(shù)大數(shù)據(jù)框架所采用的,segment的大小和segment中doc的數(shù)量。

以這兩個標準為基礎(chǔ)實現(xiàn)了三種merge策略:TieredMergePolicy、LogDocMergePolicy 及LogByteSizeMergePolicy。

elasticsearch這一部分就是對這三種合并策略的封裝,并提供了對于的配置。

它的實現(xiàn)方式如下所示:

底層mergeprovider實現(xiàn)了對三種合并策略的初始化和配置,并通過getMergePolicy()方法對外提供。

這三種合并策略中LogDocMergePolicy是根據(jù)doc數(shù)量進行合并,其它兩種都是根據(jù)segment的大小,只是TieredMergePolicy合并過程是分層進行,它會把小于某一值的所有segment合并成一個大的segment,然后再一次進行。

以上是合并策略,除了合并策略還有一個要說的就是合并線程。前面說過,merge是通過獨立線程完成的,lucene對于線程策略也有兩種,一種是順序,另外一種就是并發(fā)。

順序合并策略會阻止索引的進行,因此多數(shù)情況先不會使用,而并發(fā)合并則是和index過程同時進行,這樣不會影響索引和搜索。

elasticsearch同樣通過provider的形式提供這兩種合并線程配置。

merge能夠通過減少segment數(shù)量來提高搜索速度。但是merge的過程會對索引吞吐量及搜索速度有一定的影響,因此需要配置適當?shù)暮喜⒉呗詤?shù)。對于資源不足的環(huán)境,最好禁止自動merge,選擇空閑時段手動進行merge。

以上就是elasticsearch索引index之merge底層機制的合并講解的詳細內(nèi)容,更多關(guān)于elasticsearch索引index merge合并的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Git可視化教程之Git Gui的使用

    Git可視化教程之Git Gui的使用

    這篇文章主要介紹了Git可視化教程之Git Gui的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • VS2019創(chuàng)建MFC程序的實現(xiàn)方法

    VS2019創(chuàng)建MFC程序的實現(xiàn)方法

    這篇文章主要介紹了VS2019創(chuàng)建MFC程序的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 命令行下的2款網(wǎng)頁截圖工具推薦

    命令行下的2款網(wǎng)頁截圖工具推薦

    這篇文章主要介紹了命令行下的2款網(wǎng)頁截圖工具推薦,分別是針對IE瀏覽器的IECapt和針對Firefox瀏覽器的PageSaver,需要的朋友可以參考下
    2014-07-07
  • 通過Cursor工具使用GPT-4的方法詳解

    通過Cursor工具使用GPT-4的方法詳解

    Cursor?是集成了?GPT-4?的?IDE?工具,目前免費并且無需?API?Key,支持?Win、Mac、Linux?平臺,可以按要求生成代碼,或者讓?AI?幫助優(yōu)化代碼,分析代碼,這篇文章主要介紹了通過Cursor工具使用GPT-4的方法,需要的朋友可以參考下
    2023-05-05
  • php asp.net 比較 [推薦]

    php asp.net 比較 [推薦]

    如今當提到 Web 開發(fā)時,您有許多選擇。這些方法中許多都涉及到預(yù)處理 - 即,利用特定的標記將代碼嵌入到 HTML 頁面中
    2009-06-06
  • 詳解Git合并分支的流程步驟

    詳解Git合并分支的流程步驟

    這篇文章主要介紹了詳解Git合并分支的流程步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • idea集成Git實現(xiàn)團隊合作分工的原理詳解

    idea集成Git實現(xiàn)團隊合作分工的原理詳解

    這篇文章主要介紹了idea集成Git實現(xiàn)團隊合作分工的原理,本文通過圖文實例相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-12-12
  • Mac安裝軟件時提示已損壞的完美解決方法

    Mac安裝軟件時提示已損壞的完美解決方法

    從網(wǎng)上下載的SecureCRT、Principle等設(shè)計軟件,以及輸入法等常用軟件,安裝時可能會提示“已損壞,移至廢紙簍”這類信息,根本無法打開,這篇文章主要介紹了Mac安裝軟件時提示已損壞的解決方法,需要的朋友可以參考下
    2022-07-07
  • 為Jenkins創(chuàng)建定時構(gòu)建任務(wù)

    為Jenkins創(chuàng)建定時構(gòu)建任務(wù)

    這篇文章介紹了為Jenkins創(chuàng)建定時構(gòu)建任務(wù)的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • Visual?Assist?X?番茄助手安裝教程與漢化技巧

    Visual?Assist?X?番茄助手安裝教程與漢化技巧

    Visual?Assist?X?是一款?Microsoft?Visual?Studio?擴展工具,能夠幫助填補?Microsoft?Visual?Studio?在撰寫?C/C++?和?C#?程序之不足并提升其效率,本文給大家分享Visual?Assist?X?番茄助手安裝與漢化教程,感興趣的朋友一起看看吧
    2023-06-06

最新評論