Fessのプレビュー機能

Fessに検索結果のプレビュー機能(スクリーンショットとかサムネイルとかとも言える)が実装されました。プレビューに必要な画像の生成は、たとえば、あるURLのサイトのプレビュー画像を生成する方法は何かしらのコマンドに任せるようにしています。別にHTML以外でもプレビュー画像を生成する方法(コマンドとか)があれば、ScreenShotGeneratorのインターフェースを実装すれば良いかと。デフォルトではCommandGeneratorを実装してあるので、diconでそれにコマンドを指定すれば良い。標準ではこの機能を無効にしているけど、fess.diconの

<component name="screenShotManager" class="jp.sf.fess.screenshot.ScreenShotManager">
<initMethod name="add">
<arg>htmlScreenShotGenerator</arg>
</initMethod>
</component>
<component name="htmlScreenShotGenerator" class="jp.sf.fess.screenshot.impl.CommandGenerator">
<property name="commandList">
{"bash",
"/opt/fess/bin/html-screenshot.sh",
"${url}",
"${outputFile}"}
</property>
<initMethod name="addCondition">
<arg>"mimetype"</arg>
<arg>"text/html"</arg>
</initMethod>
</component>

のコメントアウトを外すと使えるようになる。bin/html-screenshot.shにサンプル的にURLと出力ファイルパスを渡すと、画像を生成してくれるスクリプトを用意した。そのスクリプトの中では、wkhtmltoimage-amd64というコマンドとImageMagikのconvertを使うように記述してある。環境に応じて別途取得してください。設定が完了すれば、クロール時にwebapps/fess/WEB-INF/screenshots以下に画像が配置される。ロール検索の都合上、直接参照させることができないので、検索結果に表示されたものだけしか画像を返却をしないようにしてある。あとは、検索したときに検索結果のリンクにマウスオーバーすると右側にプレビュー画像が表示されるようになる(表示方法はリリースまでに変えるかもしれないけど…)。
という感じで、検索結果にプレビュー表示させたい時にはご利用ください。

Fessを形態素解析サーバーとして利用する

まぁ、Fessというか、Solrの機能ですが、Solrはインデックスを作るときに文書を単語に分割します。その単語分割はインデックスを作成する以外でも呼び出すことはできるので、その紹介です。利用用途としては何かしらの文書を単語に分割すれば、名詞だけピックアップしてその文書にタグとしてつけたりとか、考えれば何かいろいろと出てくるでしょう(たぶん…)。そんな感じで、形態素解析をAPIで手っ取り早く利用したい場合には、Fessを利用すればあっという間に利用できます。
利用方法はFessをインストールします。手順は簡単なのでJavaがインストールされていれば、5分もかからないでしょう。そして、Fessを起動したら、たとえば、curlコマンドとかで

$ curl --basic --user solradmin:solradmin "http://localhost:8080/solr/core1/analysis/field?analysis.fieldtype=text_ja&analysis.fieldvalue=今日の天気は晴れです。"

とすれば、XMLでレスポンスが返ってきます。まぁ、確認するのにブラウザでそれにアクセスしても良いです(デフォルトでユーザー名solradmin、パスワードsolradmin)。普通の用途なら、JapaneseTokenizer要素以下を利用すれば良いかと思う。
analysis.fieldtypeを変えればいろいろな分割ができます。利用可能なフィールド型はここのfieldTypeタグのnameを利用してください。text_ja以外の日本語の形態素解析だと、text_gosenが利用可能かと。
という感じで、analysis.fieldvalueに分割したい文書を渡してあげれば良い。XML以外のフォーマットも返せるのでリクエストパラメータにwt=jsonとかすればjsonで返ってきます。