FessのFileSearchで1000件を超えるフォルダーの表示を調整する

FileSearchでファイル一覧には見つかるのに、左側のツリーに一部のサブフォルダーが現れないことがあります。フォルダーの深さではなく、ツリーを作るために取得するURLの件数上限が原因になるケースです。

サブフォルダー数ではなくURL数で制限される

ツリーはフォルダー階層を直接問い合わせるのではなく、検索対象のurlファセットから階層を組み立てます。従来のテーマはfacet.size=1000を固定で指定しており、サーバー側の上限だけを増やしても1000件までしか取得できませんでした。

修正後はフォルダー内のURLを最大65535件要求し、Fess側のquery.facet.fields.size.maxで制限します。この設定の初期値は1000なので、テーマを更新しただけでは実際の取得上限は変わりません。ソース一覧に使うhostファセットへの要求は引き続き1000件です。

対応テーマを導入してサーバー設定を変更する

15.9.x系列では修正後のtheme.ymlが15.9.7、最低対応Fessは15.9です。main系列では15.10.4です。本体に合う系列から修正を含むテーマを用意し、管理画面の「テーマ」(/admin/theme/)で導入・既定テーマの選択を行います。テーマ番号をFess本体のリリース番号と混同しないようにします。

次にfess_config.propertiesへ、例えば次の値を設定してFessを再起動します。5000は調整例で、初期値ではありません。

query.facet.fields.size.max=5000

Dockerでは実際に読み込まれる設定ファイルやマウントを変更します。更新後に対象フォルダーを開き直し、これまで欠けていたサブフォルダー、件数表示、応答時間を確認します。これは表示用ファセットの取得範囲を変える設定なので、この修正のためだけの再クロールは不要です。

件数と負荷を一緒に確認する

取得できたURLが全件に満たない場合、件数は下限として「≥123」のように表示され、サブフォルダーが欠ける旨の注意も出ます。5000件より大きいフォルダーなら、この例の設定でも完全には表示できません。キーワードや表示中のサブフォルダーで対象を絞る方法もあります。

READMEでは65535までの調整が案内されていますが、これは無制限に取得できるという意味ではありません。OpenSearchのsearch.max_bucketsなど実環境の制約もあり、開くフォルダーごとの応答サイズとサーバー負荷が増えます。必要な件数から段階的に上げ、フォルダーの深さを増やす設定では解消しない点も確認します。

関連PR

コメントを残す

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