1

まず第一に、私は長い間検索しましたが、n個の解決策を得たので、特定の問題を試してみませんでした。

  • solr-spec 4.0.0.2012.10.06.03.04.33

  • 1 つのマスター、3 つのスレーブ

  • インデックス内の約 70.000 ドキュメント

  • マスターは完全なインポート/完全な新しいインデックスの生成をトリガーします〜1日1回

  • トリガーのコマンド ライン オプション: ?command=full-import&verbose=false&clean=false&commit=true&optimize=true

  • スレーブは新しいインデックスのマスターをトリガーし、GEN が増加すると (フル インポート + 前述のハード コミット)、新しいインデックスをプルします。

  • autoCommit / autoSoftCommit が設定されていません

問題は、インデックス (~670MB) が 1 日に 1 回ハード コミットされるたびにディスクに書き込まれますが、古いものは決して削除されないことです。私が読んだ限りでは、solr は文書に対する最新の 100 の変更を復元するのに十分な tlog を保持していますが、私は正しいですか?

私のセットアップでは、少なくとも 100 のドキュメント (またはソース データベース内のデータ セット) が毎日変更されると確信しているため、solr が古いログを削除しない理由がわかりません。

誰かが正しい方向を指し示すことができれば幸いです。現在、次に何を試すべきかわかりません。また、このような問題があると説明されているこのようなセットアップは見つかりませんでした。

どうも ;)

4

1 に答える 1

1

4.0 以降、いくつかのトランザクション ログ参照リークが修正されているため、最初に Solr バージョンを更新することをお勧めします。

ハード コミットは通常、古いトランザクション ログを削除する必要があります。これは、とにかくドキュメントがディスクのインデックスに書き込まれるためです。

もう 1 つのオプションは、トランザクション ログを完全にオフにすることです。これは、実行ごとに完全に新しいインデックスのみを生成し、それを配布するためです。

于 2013-07-16T11:10:08.747 に答える