2012-06-21 53 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。 –