2012-10-10 48 views
6

我認爲mergeFactor可以被認爲是段中的最大數量,但是當它設置爲10時,我在索引之後有16個段,並且當段中的數量超過15和20時發生了合併。對mergeFactor的意思非常困惑。solr 4.0中mergeFactor的用法

這裏是我的配置

<ramBufferSizeMB>32</ramBufferSizeMB> 
<maxBufferedDocs>100000</maxBufferedDocs> 
<mergeFactor>10</mergeFactor> 

回答

10

Solr Wiki - SolrPerformanceFactors - Merge Factor documentation

的合併因子大致確定的段的數量。 mergeFactor值告訴Lucene在將它們合併到一個單獨的分段中之前,要構建多少個相同大小的分段。它可以被認爲是數字系統的基礎。

這不是一個確切的數字,而是索引如何在磁盤上管理的指南。下面是該值什麼不同的設置如何意味着索引性能的一些額外的很好的指導:

合併因子權衡

高值合併因子(例如,25):

  • Pro:通常會提高索引速度
  • Con:不太頻繁的合併,導致索引文件集合更多,這可能會降低搜索速度

Low值合併因子(例如,2):

  • 臨:較小數目的索引文件,這加速了搜索。
  • Con:更多的段合併減慢索引。

您也可以參考mergeFactor documentation on the Lucidworks site有關mergeFcator如何工作的一些細節,並會影響你的指數表現。但我認爲,這裏的關鍵是這一段:

如果創建一個新的細分市場將導致最低級別的數量 段超過合併因子值,那麼所有這些段 合併在一起,形成一個大的分割。因此,如果合併因子爲10,則每次合併都會創建一個單獨的分段 ,該分段大約比其十個成分中的每一個大10倍。 當這些較大片段有合併因子設置時,它們又會合併成一個更大的單個片段。這個 進程可以無限期地繼續。

+1

有一個很棒的部落格博客merge.http://blog.mikemccandless.com/2011/02/visualizing-lucenes-segment-merges.html – bata