2012-06-21 49 views
1

我正在使用Lucene/Solr作为我的日志搜索工具。当一组特定的文档从内存刷新到磁盘时,是否有办法在我的IndexWriter上执行提交操作?我的RamBufferSize是24Mb,MergeFactor是10.段刷新时提交IndexWriter

或者正在频繁的间隔调用提交,而不考虑刷新的唯一方式?我希望自动提交功能不被弃用。

回答

1

您可能会考虑使用Solr的commitWithin功能。这将把责任交给Solr。

CommitWithin是Solr的1.4,它可以让 客户要求的Solr,以确保它获得 一定时间内致力于推出了提交策略。这样就可以控制何时对Solr 本身进行提交,优化提交数量至少为最小数量,同时仍然满足更新延迟要求 。如果我说(在XMLUpdateRequestHandler更新中),它告诉 Solr确保文档在10000ms内提交,即 10s。然后我可以继续在这10秒内添加其他文档(可能还有其他commitWithin值),并且Solr将在 到期时自动执行一次。

当我添加文档以帮助保持我接近NRT(接近实时)时,我经常使用它,而不需要频繁发出提交提交。

+0

有没有与此相当的lucene等价物?由于我们使用lucene写作和搜索solr。 – Greenhorn

+1

我不这么认为。我相信这是Solr的一个特点。对不起,我错过了你并不是直接指向Solr,而是直接指向Lucene。 –