2011-08-15 13 views
0

奇妙なインデックスの破損以外の現在のサイトでLucene.NETを実装することに非常に満足しています。エラーは出ませんが、ダブル、トリプルなどの結果が返ってきたことに気付きます。Lukeを使用すると、インデックスに奇妙さがあります。多数のドキュメントが複数回表示されます。だから、おそらくファイナライザ/ Disposeが呼び出されていないと考えているので、インデックスが壊れていますか?Lucene.NET - サーバーのシャットダウン時に破損したインデックスを取得する

誰もがこれを防ぐのに何か経験がありますか?インデックスファイルをディスクから手動で削除すると、すべてが正常に戻ります。私は各サービスの再起動時にそれを行うべきでしょうか?

答えて

0

ソリューションは、1つのインデックスを再作成するように指定することができますindexwriter constructor overloadを使用することになりました。古いインデックスファイルが削除されます。 This SO questionは私を正しい方向に向けるのを助けました。

0

Hmmm、これはインデックスの破損のようには聞こえませんが、インデックスに重複したドキュメントを入力しているように聞こえます。

インデックスにドキュメントを配置するにはどうすればよいですか?プライマリキーとして使用されているフィールドはありますか?ドキュメントを追加するときに、このキーとどうやってチェックしていますか?すべての文書を1回のパスで追加しますか?決して更新しませんか?または、更新を確認して後で更新しますか?

おそらくテストの観点から面白いかもしれませんが、サービスがシャットダウンされたら、明らかに一貫性のある重複したセットで終わるでしょうか?それは本当にインデックスの破損を指摘するものではありませんか?

幸運、

+0

いいえ、検索インデックスがしばらく良いことを確認できます。私は検索を行い、1試合につき1つの結果しか返さない。しかし、有益な試みに感謝します。 – JasonCoder