1

場合によっては、lucene-index を最初から再構築する必要があります。構築中にインデックスが数時間不完全になることを望まないので、別のコンパス インスタンスを使用して新しいインデックスを構築し、後でファイル システムでそれを置き換えます。そうする前に、すべてのコンパス インスタンスが を使用して停止されSearchEngineIndexManager#stop()、その後、 を使用して再起動されます。SearchEngineIndexManager#start()

ただし、時々、この操作中にインデックスが破損しているように見えます。

SearchEngineIndexManger が停止しているときにファイルシステムのインデックスを置き換えるのは安全ではありませんか? ファイル システムの lucene インデックスを操作する必要がある場合、他に考慮すべき必要な予防策はありますか?

4

2 に答える 2

0

sleepを停止してから再起動するまでに5 秒を追加することで、なんとか問題を解決できましたIndexManager。醜い解決策かもしれませんが、私にとってはうまくいきます。

確かに、再起動後に SearchEngineIndexManager#clearCache() への呼び出しも追加しました。

于 2012-03-21T16:27:22.093 に答える
0

サーバーを読み取り専用モードにしてから、2 番目のlucene インスタンス (独自のインデックスを持つ) で再インデックスを開始するのはどうでしょうか。インデックス作成が完了したら、すべてのサーバーをシャットダウンし、新しいインデックスをメインの lucene サーバーに提供します。

于 2011-10-21T09:57:14.947 に答える