【发布时间】:2012-10-31 21:33:25
【问题描述】:
如何配置 Solr 索引文件的最大大小?
【问题讨论】:
标签: solr full-text-search search-engine lucene
如何配置 Solr 索引文件的最大大小?
【问题讨论】:
标签: solr full-text-search search-engine lucene
根据 Solr 用户邮件列表上的讨论 - Control Segment Size,不幸的是,没有任何方法可以控制 Solr 索引文件(也称为段)的最大大小。
为了让答案包含实际的细节,这里是来自线程的细节:
您要设置:maxMergeDocs。 “在合并段时,Lucene 将确保不会创建超过 maxMergeDocs 的段。”
无法将单个文件限制为特定大小。
单个段不会包含超过 maxMergeDocs 数量的 文件。但是段的大小可能仍然会有所不同,因为某些文档 可能比其他令牌具有更多的独特令牌。
您最初看到的一定是段合并,这是正常的,并且 发生在索引过程中。我认为没有办法避免这种情况 除了拥有高得离谱的mergeFactor(这会影响搜索 表现)。
【讨论】:
从 solr 6 开始,现在可以设置段的最大大小。
请注意,maxMergeDocs 已弃用。
默认的mergePolicyFactory 是TieredMergePolicyFactory。它有一个属性MaxMergedSegmentMB 控制段大小。来自javadocs:
如果合并将产生一个大于 setMaxMergedSegmentMB(double),则策略会合并更少 段(如果该段有删除,则立即减少到 1 个)以保留 段大小低于预算。
例如将最大段大小设置为 3000 MB:
<mergePolicyFactory class="solr.TieredMergePolicyFactory">
<int name="maxMergeAtOnce">10</int>
<int name="segmentsPerTier">10</int>
<int name="maxMergedSegmentMB">3000</int>
</mergePolicyFactory>
【讨论】: