今回はFessのサムネイル画像表示機能について紹介します。

検索結果画面が文字ばかりだとすこし見づらいと感じるかもしれません。また、検索結果画面に表示されるタイトルや要約だけでは中身が何かわからないということもあるでしょう。そのような場合、Fessではサムネイル画像で視覚的に内容を伝えることが可能です。

検索画面

設定方法

Fessでサムネイル画像を表示する設定は簡単です。管理画面の「システム」>「全般」からサムネイル表示を有効にしてください。

全般の設定

サムネイル画像生成に必要な情報はクロール時に収集しているので、設定変更後には再度クロールしてください。

サムネイル画像の表示

Fessでは検索結果のMIME Typeを元にサムネイル画像を生成しています。クロールしたドキュメントがサムネイル画像生成可能なMIME Typeであるならば、サムネイル画像を生成可能です。

Fessでは標準でHTMLファイルのサムネイル画像を生成できます。また、Linux系のOSであれば、PDFファイル、MS Office系ファイル、PostScriptファイルのサムネイル生成も可能です。サムネイル画像の生成処理はMIME Typeごとに設定して追加することもできます。

HTMLファイルのサムネイル画像

HTMLファイルのサムネイル画像表示について説明します。

HTMLファイルのサムネイル画像は、HTML内でサムネイル画像として指定されている画像、またはHTML内に含まれる画像を利用します。サムネイル画像は次の順番でHTML内を探します。

  1. name属性がthumbnailで指定されたmetaタグのcontentの値
  2. property属性がog:imageで指定されたmetaタグのcontentの値
  3. imgタグでサムネイルに適したサイズの画像

上記の順で見つかった画像をサムネイル画像として利用します。

imgタグで指定されている画像の検出についてはfess_config.propertiesに以下の設定があります。標準では、縦横幅が100px以上かつ縦横比が3倍以下の画像が検出対象になります。

thumbnail.html.image.min.width=100
thumbnail.html.image.min.height=100
thumbnail.html.image.max.aspect.ratio=3.0

その他のサムネイル

対象ファイルから何かしらのコマンド等を用いて、サムネイル画像が生成できれば検索結果に表示できます。

Fessでは、Linux環境向けにbin/generate-thumbnailを提供しています。generate-thumbnailスクリプトは対象ファイルに適した画像生成コマンドがあれば、それを利用してサムネイル画像を生成します。このスクリプトはapp/WEB_INF/classes/fess_thumbnail.xmlで利用するように設定されています。これらのファイルを変更することで、さまざまなサムネイル画像処理を設定できます。

PDFファイルのサムネイル画像生成については、ImageMagickのconvertコマンドが利用できます。Redhat系OSであれば、ImageMagickのインストールはyumを利用してインストールできます。

$ sudo yum install ImageMagick

MS Office系ファイルのサムネイル画像の生成では、ImageMagickに加えてunoconvを利用します。ImageMagickと同様にunoconvを以下のようにインストールできます。

$ sudo yum install unoconv

サムネイル画像のサイズ

HTMLファイルのサムネイル画像サイズはfess_config.propertiesの以下の値で生成してサムネイル画像が保存されます。

thumbnail.html.image.thumbnail.width=100
thumbnail.html.image.thumbnail.height=100

generate-thumbnailで生成される画像サイズは、そのスクリプト内でIMAGE_SIZEの値を変更することでサムネイル画像のサイズを変更できます。

*  *  *

今回はFessのサムネイルについて説明しました。Fessのサムネイル機能を用いることで、より見やすい検索画面の構築が可能となります。 Windows環境でも、fess_thumbnail.xmlで画像を生成するコマンド等を指定することでサムネイル画像を表示できるようになります。

著者紹介

菅谷 信介 (Shinsuke Sugaya)

Apache PredictionIOにて、コミッター兼PMCとして活動。また、自身でもCodeLibs Projectを立ち上げ、オープンソースの全文検索サーバFessなどの開発に従事。