1

ログ検索ツールにLucene/Solrを使用しています。特定のドキュメントセットがメモリからディスクにフラッシュされたときに、IndexWriterでコミット操作を実行する方法はありますか?私のRamBufferSizeは24Mbで、MergeFactorは10です。

または、フラッシュに関係なく、頻繁にcommitを呼び出すことが唯一の方法ですか?自動コミット機能が非推奨にならなかったらいいのにと思います。

4

1 に答える 1

1

Solr のcommitWithin機能の使用を検討してください。これにより、コミットの責任が Solr に引き渡されます。

CommitWithin は、Solr 1.4 で導入されたコミット戦略です。これにより、クライアントは Solr に、これが特定の時間内にコミットされることを確認するように依頼できます。これにより、Solr 自体にコミットを実行するタイミングの制御が残され、更新の待機時間の要件を満たしながら、コミット数を最小限に最適化できます。私が (XMLUpdateRequestHandler 更新で) 言うと、Solr はドキュメントが 10000 ミリ秒 (つまり 10 秒) 以内にコミットされるようにします。その後、その 10 秒以内に他のドキュメントを追加し続けることができます (他の commitWithin 値を使用することもできます)。Solr は、バッファー内の最も古いドキュメントが期限切れになると、自動的に a を実行します。

ドキュメントを追加するときにこれを頻繁に使用して、頻繁にコミットを発行する必要なく、できるだけ NRT (ほぼリアルタイム) に近づけるために使用します。

于 2012-06-21T12:13:46.797 に答える