Solr优化太频繁了吗?

时间:2012-11-01 02:53:04

标签: solr

我们在服务器上有16个核心,每个核心都有450万个客户订单。最近,我们每小时为每个核心提交200个新订单,然后优化所有核心。我们发现每个优化操作至少需要30分钟。我有几个问题:

  1. 我们应该在每次提交后进行优化吗?如果我们每天优化,它会在我们的环境中显着降低查询性能吗?

  2. 我们只在solr中添加新订单,永远不会更新或删除solr中的任何一个。那么,我们能否只优化我们提交的指数,换句话说,我们可以按日期范围优化指数吗?

2 个答案:

答案 0 :(得分:2)

不,每次提交后都不要优化。您应该优化的频率取决于您更新的频率。

来自http://wiki.apache.org/solr/SolrPerformanceFactors#Optimization_Considerations

  

如果您的指数快速变化,而不是优化,那么   可能只是想使用较低的合并因子。优化是非常的   价格昂贵,如果指数在不断变化,那就轻微了   性能提升不会持续很长时间。权衡通常不值得   它用于非静态索引。

“它是否会显着降低查询性能”这一问题是您必须自己测试的,但需要衡量,衡量和衡量。然后,确定性能是否实际上是一个问题。如果50ms查询成为60ms查询,则响应时间增加20%,但这有关系吗?只有你可以回答这些权衡。但你必须有数字。

答案 1 :(得分:0)

您应该批量提交并在间隔内进行优化。 由于优化是一项非常繁重的操作,其中索引段组合在一起形成单个段以提高性能。

但是,使用最新的Lucene,您甚至可能不需要使用Optimize 已使用最新版本弃用优化: -

  

这种方法已被弃用,因为它非常低效   很少有理由。 Lucene的多段搜索性能有   随着时间的推移而改进,默认的TieredMergePolicy现在是目标   具有删除的细分。