Fessをアップグレードする際、設定系インデックス(fess_config、fess_user、fess_log)のマッピングが変更されていることがあります。これまではマッピングの変更を手動で反映する必要がありましたが、管理画面のメンテナンス機能から簡単に再構築できるようにしました。
背景
Fessでは、検索ドキュメント用のインデックス(fess.YYYYMMDD)とは別に、設定情報を保存する設定系インデックスがあります。バージョンアップ時にマッピングの変更があった場合、設定系インデックスにも最新のマッピングを適用する必要があります。これまではOpenSearchの管理ツールなどを使って手動で対応する必要がありましたが、この作業を管理画面から実行できるようにしました。
再構築の仕組み
管理画面のメンテナンスページに「Rebuild Config Index」カードを追加しました。再構築は以下の手順で安全に実行されます。
- バックアップの作成: 対象インデックスのデータをバックアップ用インデックスにリインデックス
- インデックスの削除と再作成: 元のインデックスを削除し、最新のマッピングで再作成
- データの復元: バックアップからデータをリインデックスして復元
- エイリアスの再設定: エイリアスを再設定してサービスを継続
- 検証: ドキュメント数を検証し、不整合があれば自動でロールバック
再構築対象のインデックスは、fess_config、fess_user、fess_logの3種類から個別に選択できます。検索ドキュメント用のインデックス(DOC_INDEX)は対象外です。
デフォルトデータの読み込み
「Load Default Data」チェックボックスをオンにすると、再構築時にデフォルトのバルクデータを投入できます。この際、OpType.CREATEを使用しているため、既存のドキュメントは上書きされません。新規のデフォルトデータのみが追加されます。
利用方法
管理画面の「メンテナンス」ページにアクセスすると、「Rebuild Config Index」セクションが表示されます。再構築したいインデックスのチェックボックスを選択し、必要に応じて「Load Default Data」にチェックを入れて実行します。
この機能を利用するには、OpenSearchのreindexモジュールが必要です。Fessのmodule.xmlにreindexモジュールのインストール設定が追加されています。
詳細はPR #3097を参照してください。