Lucene中的合併因子mergeFactor

mergeFactor
是用來決定segment該如何被addDocument()方法進行合併的。
當mergeFactor取比較小的值時,索引時所使用的內存較少
而且搜素未優化的速度會比較快。因此,mergeFactor取值較大時(比如大於10),
適合於批量的索引建立,而當搜索未優化索引的速度會更快,但是索引建立的速度會比較慢。
當mergeFactor取較大的值時,建立索引的速度會比較快。因此,mergeFactor取值較大時(比如大於10)
適合於這些批量的索引建立,而當mergeFactor取較小的值時,適合於間歇性的向索引加入文檔。
這個合併因子在Lucene的索引建立過程中起到很重要的作用:
(1)、將mergeFactor的因子設爲10, 那麼每向索引添加10個Document時,就會有一個新的segment在磁盤上建立起來。
(2)、當第10個這樣的segment建立好後,它們會被合併成爲一個具有100個Document的新segment。
(3)、接下來,每個100個Document又會創建一個新的segment,當第999個文檔被加入索引時,
此時磁盤上應該已經有了9個segment,其中每個都有100個Document,而第901個到999個Document此時正在內存中,
還未被寫入磁盤中。
(4)、倘若此時,再向索引中加入一個Document,那麼,前面9個segment就會和這第10個
新創建的segment進行合併,成爲一個具有1000個Documentde segment。過程依次類推。


//爲了防止segment中文檔數量會增長的快,所以用maxMergementDocs限制最大的存儲在segment的文檔數。
//minMergementDocs又叫做maxBufferedDocs指的是每次將索引被刷到磁盤的時候,內存的數量

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章