1

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

或者是在频繁的时间间隔调用提交,而不管刷新是唯一的方法吗?我希望自动提交功能没有被弃用。

4

1 回答 1

1

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

CommitWithin 是 Solr 1.4 中引入的一种提交策略,它允许客户端要求 Solr 确保在特定时间内提交。这将何时进行提交的控制权留给了 Solr 本身,将提交的数量优化到最低限度,同时仍然满足更新延迟要求。如果我说(在 XMLUpdateRequestHandler 更新中),这会告诉 Solr 确保文档在 10000 毫秒内提交,即 10 秒。然后我可以在这 10 秒内继续添加其他文档(可能带有其他 commitWithin 值),当缓冲区中最旧的文件到期时,Solr 会自动执行。

我在添加文档时经常使用它来帮助我尽可能接近 NRT(接近实时),而不需要频繁地发布提交。

于 2012-06-21T12:13:46.797 回答