Fessのログ保持期間と日本時間での削除境界を確認する

Fessの開発版に、ログの削除境界をUTCで計算する修正がマージされました。日本時間で動くサーバーでは、指定した保持日数より9時間早くログを削除してしまうケースへの対応です。ログを何日残すかの設定と、定期ジョブによる削除時刻を合わせて確認しましょう。

クリック・お気に入りログを削除対象へ加えた変更は以前の記事で紹介しています。今回は削除する日時の境界に関する修正です。

対応状況と適用条件

問題は、JVMの標準タイムゾーンがUTC以外で、保持日数を設定してLog Purgerがログ削除を行う場合に関係します。Asia/Tokyoでは、UTC保存の日時と比較する境界を日本時間の値で送っていたため、削除対象が9時間先まで広がっていました。修正後は境界をUTCで計算します。

保持期間の初期値は削除しない設定

管理画面の「システム > 全般」にあるログ削除日数は、初期値が-1です。-1の場合は期限による削除を行わず、保持し続けます。

「以前の検索ログを削除」の日数は、検索ログだけでなくクリックログ、お気に入りログ、チャットログにも使われます。「以前のユーザーログを削除」はユーザー情報に適用されます。「以前のジョブログを削除」にも初期値-1がありますが、今回のUTC修正は検索・クリック・お気に入り・チャット・ユーザー情報の5種類が対象です。

7日保持を日本時間で運用する例

日本時間2026年10月12日09:00、つまりUTCの2026年10月12日00:00に、7日保持の削除を実行する場合を考えます。

  • 修正前に送られる境界: UTCとして解釈される2026年10月5日09:00
  • 修正後に送られる境界: UTCの2026年10月5日00:00

修正前は、実際にはまだ7日経過していない9時間分も対象になります。修正後は現在時刻から7日を引いた境界以前を削除します。「7日前の日付の日本時間00:00」で区切る仕組みではなく、実行時刻から日数を引いた判定です。ユーザー情報は更新日時、検索・クリック・チャットは要求日時、お気に入りは作成日時が比較対象になります。

運用で確認すること

まず各保持日数と「システム > スケジューラ」のLog Purgerの実行設定を確認します。例えば検索ログ側を7日へ変更すると、クリック・お気に入り・チャットにも同じ日数が適用されるため、分析用途に必要な期間を先に決めてください。

修正はこれから行う削除の境界を変えるもので、既に削除されたログを復元するものではありません。保持設定を変える前に、必要なログを管理画面のバックアップなどで別途保管します。そこで取得するログの*.ndjsonは、管理画面からアップロードして復元する形式ではありません。

この保持設定はOpenSearch上のログを扱います。searchlog.logなどのファイルのローテーション・保管期間は別の設定なので、ディスク使用量を管理するときは両方を確認してください。

関連PR

FessのPlaywrightサムネイルを単独プラグインで動かすための条件

Fess 15.9の開発版では、Playwrightが本体の配布物から分離されています。PlaywrightでWebページのスクリーンショットを作るサムネイルプラグインを単独導入すると、Playwrightクラスが見つからず起動できない問題を修正するPRがマージされました。

2026年10月13日時点でfess-thumbnail-playwright #14と関連する本体・文書のPRはマージ済みです。

プラグインJARにAPIとドライバーを含める

修正では、PlaywrightのJava APIとJavaScriptドライバーをサムネイルプラグインのJARへ同梱します。WEB-INF/pluginへ置いたJARのMaven依存関係をFessが自動取得する仕組みはないため、必要なクラスを配布物に含める方法です。

これにより、修正版ではクローラープラグインfess-crawler-playwrightをサムネイル生成のためだけに追加する必要がなくなります。両方を使う場合は同じFessリリース向けの版をそろえます。異なるPlaywright版の混在を安全とする変更ではありません。

Node.jsは別に用意する

修正後のREADMEにある導入例は次のとおりです。修正を含む配布物が利用可能になった時点で、Fessとプラグインの対応版を確認して実行します。

bin/fess-setup install plugin fess-thumbnail-playwright
bin/fess-setup install nodejs

プラグインはNode.jsの実行ファイルを同梱しません。Fessの起動スクリプトがインストール済みNode.jsを見つけ、PLAYWRIGHT_NODEJS_PATHを設定し、サムネイルジョブが引き継ぎます。自分で用意する場合はNode.js 20以降を指定します。

ブラウザも別の依存物で、Playwrightが初回利用時にダウンロードします。初回の取得が可能なネットワークと、実行環境に必要なブラウザ依存ライブラリーを確認してください。Node.jsを入れれば全OSで無条件に動く、という意味ではありません。

本体のセットアップヘルプと15.9移行文書も、サムネイルプラグインにNode.jsが必要であることを明記しました。fess-setup checkのNode.jsがない場合のOK・FAIL判定自体を変えた修正ではありません。

Dockerの15.9向け構成でも、どのイメージもPlaywrightクローラー・サムネイルプラグインとNode.jsを自動導入しません。必要なプラグインをFESS_PLUGINSなどで明示し、Node.jsとChromiumのOS依存ライブラリーを別途用意します。通常版イメージのサムネイルツールは画像・PDF・Office用で、HTMLのスクリーンショット生成とは別です。

15.8の起動設定を丸ごと引き継ぐと、セットアップで入れたNode.jsを検出できない場合があります。15.9の起動設定を基に自分の変更を再適用し、必要ならPLAYWRIGHT_NODEJS_PATHを明示します。

有効化と確認範囲

thumbnail.enabledはシステムプロパティで、未設定時の初期値はfalseです。サムネイルを利用する構成では有効化も確認します。プラグインのコンポーネントは起動時に読み込むので、導入後はFessを再起動します。JARを置いたまま稼働中のジョブへ即時反映する方法ではありません。

修正PRでは単独プラグインでのクラス読み込み、DI構築、実ブラウザでのPNG生成を確認しています。一方、Fess全体の起動とWindows環境の確認は含まれません。実運用への反映前に、修正版の入手状況、Node.jsのパス、ブラウザ起動、実際のサムネイルジョブを順に確認してください。

関連PR

Fessのコード検索でpath絞り込みとJavaScript・YAMLの分類を改善する

コード検索テーマで path:src/main を指定しても結果が出ない問題や、JavaScript・YAMLが言語ファセットに現れない問題が修正されました。テーマ側の検索式と、クロール時の分類・インデックス定義をそれぞれ更新する変更です。

pathとフレーズの指定

修正を含むcodesearchテーマでは、引用符なし・ワイルドカードなしのpathは前方一致になります。スラッシュなどは検索構文に合わせてエスケープされます。ワイルドカードを指定した場合はその指定を使い、引用符付きなら完全一致です。

path:src/main
path:*Suggester.java
path:"src/main/java/example/App.java"
"new HashMap"

フレーズの引用符や近接指定 "foo bar"~3 を維持し、--verbose は文字列として検索します。単独の先頭ハイフンによる除外は従来どおりです。ファセット操作後も同じ検索式を使います。ただし repo:a OR repo:b の並びや、否定条件の再解析に関する既存の制限は残ります。

初期値と画面操作

ページングは入力したnumではなくAPI応答の page_size に合わせます。標準の最大100件に対し num=500 を指定した場合も、次ページがstart=500になって途中の結果を飛ばすことを避けます。最大件数はサーバー設定に依存します。

幅960px以下ではFiltersボタンから絞り込みパネルを開けます。Escapeで閉じ、/ キーで検索欄へ移動できます。テキスト入力中やIME変換中はショートカットを割り込ませません。閉じたファセットパネルがTab順に残る既存の制限は今回のcodesearch修正では解消していません。

JavaScriptとYAMLを再クロールで分類する

docker-codesearchの conf/fess_config.overlay.properties の index.filetype に、text/javascript=javascript と text/x-yaml=yaml が追加されました。.js / .mjs と .yml / .yaml が対象です。TypeScript、JSX、CJS、Vue、SCSS、TOMLなどは検出上text/plainとなり、txt分類のままです。

既存文書のfiletypeは再クロールで更新します。保存済み文書をコピーするメンテナンスの再インデックスだけでは再計算されません。

スキーマと利用条件

_codesearch の定義には15.9のetag、last_modifier、tagと長音記号の正規化が取り込まれました。既存インデックスのマッピングは自動で変わらず、新規インデックスで定義が適用されます。既存データを更新する場合はバックアップと移行方法を検討し、定義更新だけで完了したと判断しないようにします。

テーマのソース上の版は15.9.8、minFessVersionは15.9です。確認時点のFess正式版は15.8.0なので、修正を含む15.9開発ビルドとテーマを使うための説明です。テーマの版番号をFess本体の正式リリースと混同しないでください。

関連PR