Fessの人気ワードキャッシュとサジェストの反映タイミングを確認する

Fessでサジェストの設定を変えても画面に反映されない場合、サジェストのインデックス更新と人気ワードのキャッシュを分けて確認します。人気ワードのキャッシュ有効期間を、説明どおりの「秒」で扱う修正がマージされました。

初期値60が60秒として動く

fess_config.propertiesには次の初期値があります。

suggest.popular.word.cache.expire=60
suggest.popular.word.cache.size=1000

有効期間の説明は秒でしたが、従来の実装は分として読み、初期値60で最大60分キャッシュしていました。修正後は60秒です。これは書き込みからのキャッシュ期限で、1分ごとに必ずジョブを実行する設定ではありません。

従来の実効値60分に合わせたい場合は、修正後の環境で有効期間を秒数の3600にします。更新を早めるほどキャッシュの再取得が増えるので、設定変更後は負荷も確認します。

ワードの登録だけではインデックスは更新されない

除外ワードや追加ワードの登録・編集・削除、CSVアップロードは、登録済みのサジェスト候補へ即時反映する操作ではありません。「Suggest Indexer」ジョブの実行で反映されます。既定の実行時刻は毎日12:00ですが、運用環境でスケジュールを変更している場合は実際の設定を優先します。

すぐに反映したい場合は、管理画面の「システム > スケジューラ」から「Suggest Indexer」を開き、「今すぐ開始」を実行します。ジョブの成否を確認してから、同じ利用者・権限・ラベル条件で表示を試します。SuggestJobは実行後に人気ワードキャッシュもクリアします。

追加ワードCSVの権限欄も確認する

文書では次のヘッダーと例へ修正されています。

"SuggestWord","Reading","Permissions","Labels","Boost"
"fess","ふぇす","{role}role1","label1","100"

パーミッションは{role}、{user}、{group}の接頭辞を付けます。role1だけではそのロールの指定になりません。これはデータストアスクリプトのRrole1という検索ロール表記とは用途が違います。

キャッシュの修正だけで、失敗したジョブや不正な権限指定まで直るわけではありません。更新されないときは「ワードの設定 → Suggest Indexerの成功 → 利用者条件 → 人気ワードキャッシュ」の順で確認すると、待つべき箇所を判断しやすくなります。

関連PR

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です