4

Web アプリケーションで全文検索に Hibernate 検索を使用しています。管理パネルにインデックス作成用のボタンがあります。私はこのコードでそれを行います:

                fullTextSession.createIndexer()
                .purgeAllOnStart(true)
                .optimizeAfterPurge(true)
                .optimizeOnFinish(true)
                .batchSizeToLoadObjects( 25 )
                .threadsToLoadObjects( 5 )
                .threadsForSubsequentFetching( 20 )
                .startAndWait();

インデックスが正しく構築されていて、このボタンをもう一度押すと、古いインデックス ファイルがまだディスク上にあり、プログラムによって新しいインデックスが作成されます。等々。新しいインデックス ファイルを作成する前に、古いインデックス ファイルを削除するのを手伝ってもらえますか?

4

1 に答える 1

4

同様のことを行いますが、アプリをシャットダウンしたときにのみインデックスを削除し、起動時に再度設定します。

purgeAllOnStart() の代わりに purgeAll() を呼び出してみましたか? それが私がアプリのシャットダウン時に呼び出すものであり、機能します。安全のために、インデックスを削除した後、実際にはインデックス ディレクトリとそれに含まれるすべてのファイル/フォルダもディスクから削除します。

于 2011-08-26T22:04:00.530 に答える