如何手动合并solr中的段?

How to merge segments in solr manually?

在 solr admin ui 中,我看到我的一个 solr 核心有 165 segments.this 条件会变慢 queries.To 让它更快,我想知道如何合并所有的 solr段成单? 谢谢

你可以在solrconfig.xml中指定MergePolicy,这样Solr会自己合并段。

您大致需要做的是添加类似这样的内容(当然会根据您的需要进行更新)

<mergeFactor>10</mergeFactor> <!-- or any numbers you like-->
<mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>

它会自动执行并按一定的时间表执行。我想这是首选方式。

有关配置的更多信息 - https://cwiki.apache.org/confluence/display/solr/IndexConfig+in+SolrConfig#IndexConfiginSolrConfig-MergingIndexSegments

如果您需要简单的方法 - 只需单击 Solr Admin UI 中的 optimize 按钮以获取此核心

还有一个命令,您可以手动使用它来强制段合并 -

/update?optimize=true&waitSearcher=false&maxSegments=1