我认为mergeFactor可以被认为是段内的最大数量,但是当它设置为10时,我在索引后得到16个段,并且当段内的数量超过15和20时发生合并。我对mergeFactor的平均值感到非常困惑。
这是我的配置
<ramBufferSizeMB>32</ramBufferSizeMB>
<maxBufferedDocs>100000</maxBufferedDocs>
<mergeFactor>10</mergeFactor>
来自Solr Wiki - SolrPerformanceFactors - Merge Factor 文档
mergeFactor大致确定了段的数量。mergeFactor 值告诉 Lucene 在将它们合并为单个段之前要构建多少个相同大小的段。它可以被认为是数字系统的基础。
它不是一个确切的数字,而是如何在磁盘上管理索引的指南。以下是有关此值的不同设置对您的索引性能有何影响的一些其他很好的指导:
合并因子权衡
高价值合并因子(例如,25):
- 优点:通常会提高索引速度
- 缺点:合并频率较低,导致集合包含更多索引文件,这可能会降低搜索速度
低值合并因子(例如,2):
- 优点:索引文件数量较少,可加快搜索速度。
- 缺点:更多的段合并会减慢索引速度。
您还可以参考Lucidworks 站点上的 mergeFactor 文档,了解有关 mergeFcator 如何工作以及如何影响索引性能的更多详细信息。但我认为这里的关键是这一段:
如果创建新段会导致最低级段的数量超过 mergeFactor 值,则所有这些段将合并在一起形成一个大段。因此,如果合并因子为 10,则每次合并都会创建一个单独的段,该段大约是其十个组成部分中的每一个的十倍。当这些较大的段有 mergeFactor 设置时,它们又会合并成一个更大的单个段。这个过程可以无限期地继续下去。