Fessのサジェスト機能

Fessにサジェスト(オートコンプリート)機能を実装しました。デフォルトでは、contentとcontent_jaのフィールドからサジェスト機能が利用できるようにsolr/core1/conf/solrconfig.xmlを設定してあります。app.diconファイルと合わせてカスタマイズすることで利用できるフィールドは増やすことができます。利用方法的には

$ curl "http://192.168.10.109:8080/fess/json?query=f&type=suggest&fn=content&num=10"

とすると

{
"response":{
"version":3,
"status":0,
"recordCount":1,
"result":[
{
"token":"f",
"startOffset":0,
"endOffset":1,
"numFound":10,
"result":[
"fess",
"finalize",
"for",
"from",
"function",
"foo",
"final",
"finddbmeta",
"fctpd",
"filterconverttopuredate"
]
}
]
}
}

というような感じでレスポンスが返ってきます。あとは、JS側で適当に処理していただければ良いと思います。

FessのMoreLikeThis機能

FessでもMoreLikeThis機能を利用できるようにしました。MoreLikeThis機能は検索結果に表示されたドキュメントに関連するドキュメントを表示できるようになります。指定方法的には

http://localhost:8080/fess/json?query=fess&sort=&num=1&mlt.field=content_ja&mlt.count=10

という感じでやると検索結果のドキュメントに関して、関連するドキュメントリストも返すようになります。mlt.fieldが関連性を評価したいフィールド名で、mlt.countが表示件数です。というわけで、FessでMoreLikeThisも検索結果と同時に取得できるようになりました。

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以下に画像が配置される。ロール検索の都合上、直接参照させることができないので、検索結果に表示されたものだけしか画像を返却をしないようにしてある。あとは、検索したときに検索結果のリンクにマウスオーバーすると右側にプレビュー画像が表示されるようになる(表示方法はリリースまでに変えるかもしれないけど…)。
という感じで、検索結果にプレビュー表示させたい時にはご利用ください。