fessctlの一覧取得で、指定したページや件数がFess側に反映されない問題が修正されました。登録件数が多い環境の移行スクリプトでは、同じ先頭ページを繰り返して残りの設定を取り漏らしていたため、ページごとのID確認が重要です。
一覧取得の指定が反映される
Fess 15.8と15.9の管理一覧APIは、GETリクエストのJSON本文から size と page を読みます。従来のfessctlはURLパラメーターだけを送り、サーバーの標準25件が返っていました。修正後はJSON本文にも送り、CLIの既存初期値 --size 100 が実際に適用されます。IDで1件を取得するGETは変更されません。
修正を含むfessctlで、次の2ページのIDが異なることと total を確認します。接続先と管理用アクセストークンは通常のfessctl設定を利用します。
fessctl scheduler list --size 1 --page 1 -o json
fessctl scheduler list --size 1 --page 2 -o json
23種類の一覧取得が共通の修正対象です。Fess 14.xでは今回のPRで動作確認されていません。中間プロキシがGET本文を落とさないことも導入環境で確認します。
JavaScript移行の取り漏れを防ぐ
docker-codesearchの bin/migrate-to-javascript.sh は、同じIDしか増えないページを検出すると、全件に達していなければ失敗終了します。ジョブとデータ設定を両方読み終えてから更新するため、一覧取得失敗で一方だけ移行することを避けます。
移行前には --dry-run で対象を確認します。ページングが効かない旧fessctlでは、1ページに収まる場合を除いて移行を止めるので、先に修正版fessctlを利用してください。旧リリース0.3.0での問題を、単に同じバージョンを再インストールして解消できるとは扱いません。
管理APIの上限を超えない
Fess側にも、一覧APIの件数・ページを結果ウィンドウ内に収める修正が入りました。indexer.max.result.window.size の初期値は10000です。size=10001 は10000に切り詰め、末尾が上限を超えるpageは範囲内の最終ページに補正します。0以下のsize/pageは従来のページャー初期値に委ねます。
上限超えを500にしない改善ですが、ウィンドウを越えて全件を取得できる機能ではありません。終端判定を単なる取得件数の累計にすると同じ最終ページを数えることがあるため、IDの重複と実際の件数を確認してください。