4.X Lucene は 3.0 より前のインデックスを読み取らないため、2.9 インデックスを 4.0 に移行する方法を考えてみました。
私は最初に問題を説明しようとします。問題は、レガシー システムが Lucene に 2.4 に戻って情報を格納していることです。これにより問題が発生する可能性があることはわかっており、システムの多くの部分でこれを停止するための措置を講じましたが、すべてではありません。これが悪い理由の 1 つは、現在 lucene の 4.0 を使用しているにもかかわらず、4.0 で読み取れるようにする必要がある 2.9 のインデックスがまだあるためです。新しい 4.0 インデックスを作成するために何かを書き、2.9 から各ドキュメントを読み込んで、それらのフィールドから新しいドキュメントを作成するのは、時間のかかる方法です。これには時間がかかりますが、実行可能です。
私が思いついた 2 番目の解決策は、3.4 lucene を使用して新しいインデックスを作成し、2.9 lucene インデックスでインデックス リーダーを作成してから、3.4 ライターで addIndexs(2_9Reader) を呼び出すことです。この 3.4 インデックスを 4.0 に移動したところ、このインデックスに対して正常に読み書きできるようです。
私が持っていた質問は、これが安全かどうかです。必要に応じて機能しているように見えますが、 addIndexs コードを実行した後に機能する理由がわかりません。