2017年12月17日日曜日

勝手に解説:FESSの設定ファイル

あまりに情報が無いので、自分で調べた物を勝手に書くことにしました。

FESSの設定は、ローカルに保存されるものと、elasticsearch(以下es)に保存されるものがあります。

■esに保存されるもの

  • ユーザー情報とパスワード
  • Web、ファイルなどのクロール設定
  • 形態素解析の辞書設定
  • サジェスト設定

同じクラスタに参加しているFESSは、ユーザー情報を共有しています。
デフォルトのadminアカウントは、削除するか、すぐにパスワードを変更して、権限をGuestに落とすと良いでしょう。

以下はローカルに保存されるものです。

■メインの設定ファイル
/etc/fess/fess_config.properties
FESSのメイン部分です。

# JVM options
クローラーやSuggestインデクサの設定です。
通常なら変える必要はありません。
数千万URLをターゲットにするなら、クローラーの割り当てメモリを増やします。
「-Xmx512m\n\」の部分です。

# common
FESSの基本的な挙動を設定します。
特段、変える必要はないと思います。

# html
Webクローリングの挙動を設定します。
crawler.document.html.pruned.tags
で、無視するタグを追加できます。

# cache
キャッシュ機能の挙動を設定します。
crawler.document.cache.enabled=false
キャッシュ機能が不要なら、上をfalseにします。

# boost
検索結果の評価値を変更するときに使います。
デフォルトでまずまずの結果が返ってきます。

# search page
ここも特に変える必要が無いのですが、thumbnailsだけ気を付けます。
thumbnail.html.image.format=png
サムネールの画像フォーマットを指定します。
pngとjpgが指定できるのかな?調査中です。
thumbnail.crawler.enabled=false
サムネールが不要、または該当のサーバーで生成させないときはfalseにします。

#  Scheduler
scheduler.target.name=
複数のサーバーでFESSクラスタを作っているときに、クローラー名を設定できます。
node-0とかcrawler-0とか、管理しやすい名前を付けると良いでしょう。
FESSのUIの「システム」→「スケジューラー」で「対象」を指定できます。
デフォルトはallで、全てのクラスタでクローラーが動作します。
「Suggest Indexerはnode-2にやらせよう」みたいに、特定のノードに仕事をさせたいときは、上で設定したクローラー名を入力します。
複数のノードを指定するときはコンマで区切ります。

■クローラーの設定
/usr/share/fess/app/WEB-INF/crawler/resources/app.xml
中身はxmlです。
FESSは汎用検索エンジンのため、fileTypeHelperに大量のMIMEタイプが記述されています。
自分のシステムに不要な部分は、コメントアウトしても大丈夫です。

/usr/share/fess/app/WEB-INF/classes/crawler/contentlength.xml
クローラーで読み込む最大サイズを記述します。

■サムネールの保存先
/var/lib/fess/thumbnails/
サムネールは、サーバーのローカルに保存されます。
うっかり、大量のサムネールが生成されてストレージを圧迫することもあります。
ものすごい数のディレクトリが作成されるので、削除するときは大変です。

■ログの保存先
/var/log/fess/
ログは普通の場所に保存されます。