インデックスの作成から検索まで
起動直後の状態では、検索するためのインデックスが作成されていないため、検索しても何も結果が返ってきません。そのため、まずインデックスを作成する必要があります。ここでは、http://fess.sourceforge.jp/ja/以下を対象にインデックスを作成し、検索を行うまでを例として説明します。
管理ページへのログイン
まず、管理ページであるhttp://localhost:8080/fess/adminにアクセスし、ログインしてください。デフォルトではユーザー名、パスワードともにadminです。

クロール対象の登録
次に、クロールの対象を登録します。今回は、Webページを対象とするので、管理ページの左側から[ウェブ]を選択してください。初期状態では何も登録されていないため、[新規作成]を選択します。
ウェブクロールの設定として、今回は、http://fess.sourceforge.jp/ja/以下のすべてのページをクロール対象とすることにします。また、ブラウザタイプはすべての項目を選択し、PCや携帯電話のどちらから検索をしても結果が表示されるようにします。
その後、確認画面で[作成]をクリックすることで、クロールの対象を登録することができます。登録内容は、[編集]から変更することが可能です。
クロールのスケジュール設定
次に、ドキュメントを巡回して収集するクロールスケジュールを設定します。クロールのスケジュールは管理ページの左側のメニューの[クロール全般]から設定します。
設定の書式は、UNIXのcronに似ています。左から、秒、分、時、日、月、曜日を表します。例えば、毎日12:10amにクロールを行わせたい場合、「0 10 12 * * ?」とします。
クロールが開始し、インデックスが作成されているかどうかは、左側のメニューの[セッション情報]から確認することができます。クロールが完了している場合、[セッション情報]のWebIndexSizeに検索対象としたドキュメント数が表示されます。

検索実行例
クロール完了後、検索をすると下の画像のような結果が返されます。
検索画面のカスタマイズ
ここでは、利用者が最も閲覧する、検索トップ画面と検索結果一覧画面をカスタマイズする方法を紹介します。
今回は、ロゴファイル名を変える方法を示します。デザイン自体を変えたい場合については、シンプルなJSPファイルで記述されているのでHTMLの知識があれば変更することができます。
まず、検索トップ画面は「webapps/fess/WEB-INF/view/index.jsp」ファイルを編集します。
<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="content-style-type" content="text/css" />
<meta http-equiv="content-script-type" content="text/javascript" />
<title>Fess</title>
<link href="${f:url('/css/style.css')}" rel="stylesheet" type="text/css" />
</head>
<body>
<div id='main'>
<s:form action="search">
<table>
<tbody>
<tr>
<td><img id="logo" src="${f:url('/images/logo.gif')}" alt="<bean:message key="labels.search_top_logo_alt"/>" /></td>
<td><div class="input">
<html:text styleClass="query" property="query" title="Search" size="50" maxlength="1000"/>
<input class="btn" type="submit" value="<bean:message key="labels.top.search"/>" name="search" />
</div></td>
</tr>
</tbody>
</table>
</s:form></div>
</body>
</html>
検索トップ画面に表示される画像を変更する場合は、「logo.gif」の箇所を置き換えたいファイル名に変更します。ファイルは「webapps/fess/images」に配置します。
<s:form>や<bean:message>などはJSPタグです。例えば、<s:form>は実際のHTML表示時にformタグに変換されます。詳しい説明はSAStrutsのサイトやJSPに関するサイトをご覧ください。
次に、検索結果一覧画面は「webapps/fess/WEB-INF/view/search.jsp」ファイルを編集します。
<div id="header">
<s:form action="search">
<div class="input">
<s:link action="index" title="Fess Home">
<img class="logo" src="${f:url('/images/logo-top.gif')}" alt="<bean:message key="labels.search_header_logo_alt"/>"/>
</s:link>
<html:text styleClass="query" property="query" title="Search" size="50" maxlength="1000" />
<input class="btn" type="submit" value="<bean:message key="labels.search"/>" name="search"/>
</div>
</s:form>
</div>
検索結果一覧画面の上部に表示される画像を変更する場合は、「logo-top.gif」の箇所のファイル名を変更します。「logo.gif」の場合と同様に「webapps/fess/images」に配置します。
JSPファイルで利用しているCSSファイルを変更したい場合は「webapps/fess/css」に配置されている「style.css」を編集してください。
まとめ
全文検索システムであるFessについて、インストールから検索までと簡単なカスタマイズ方法について説明をしました。特別な環境構築も必要なく、Javaの実行環境があれば検索システムを簡単に構築できることを紹介できたと思います。既存のシステムにサイト検索機能を追加したいような場合にも導入できるので、ぜひお試しください。
次回は、Fessがサポートするモバイルサイトの検索機能を紹介したいと思います。






